W tym temacie dowiemy się jak odczytywać dane wejściowe użytkownika z terminala i skryptu.
Aby odczytać dane wejściowe użytkownika Bash, używamy wbudowanego polecenia Bash o nazwie read. Pobiera ono dane wejściowe od użytkownika i przypisuje je do zmiennej. Odczytuje ono tylko pojedynczy wiersz z powłoki Bash. Poniżej znajduje się składnia jego implementacji.
Składnia
Podążaj za podanymi przykładami, aby odczytać dane wejściowe użytkownika ze skryptu Bash:
Przykład 1:
W tym przykładzie odczytujemy zarówno pojedyncze, jak i wielokrotne zmienne ze skryptu Bash za pomocą polecenia read.
Program:
Zobacz konsolę Bash:
Wyjście:
Co się stanie, jeśli nie przekażemy żadnej zmiennej za pomocą polecenia read?
Jeśli nie przekażemy żadnej zmiennej z poleceniem read, to możemy przekazać wbudowaną zmienną o nazwie REPLY (powinna być poprzedzona znakiem $) podczas wyświetlania danych wejściowych. Można to wyjaśnić za pomocą poniższego programu:
Program:
Na konsoli Bash:
Wyjście:
Przykład 2:
W tym przykładzie wprowadzamy dane wejściowe do tego samego PROMPT, używając opcji linii poleceń -p w następujący sposób:
Program:
Zobacz konsolę Bash:
Wyjście:
Przykład 3:
Przykład ten ma na celu utrzymanie wejścia w trybie cichym, czyli to co użytkownik wprowadzi w linii poleceń będzie ukryte dla innych.
Podajemy więc nazwę użytkownika i ukrywamy hasło (tryb cichy) za pomocą opcji wiersza poleceń (-s, -p), jak poniżej:
Gdzie -s pozwala użytkownikowi na zachowanie trybu cichego, a -p na wprowadzanie danych w nowym wierszu poleceń.
Program:
Zobacz konsolę Bash:
Wyjście:
UWAGA: W piątej linii skryptu daliśmy pustą linię z komendą echo, ponieważ jeśli nie zrobimy jej pustej, to wyjdzie zarówno hasło jak i nazwa użytkownika na tym samym PROMPCIE, jak na poniższym obrazku.
Więc, napisz swój skrypt dodając pustą linię komendy echo.
Przykład 4: Ten przykład ma na celu wprowadzenie wielu danych wejściowych przy użyciu tablicy. Użyj więc opcji -a w linii poleceń w następujący sposób:
Gdzie -a pomaga skryptowi odczytać tablicę, a zmienna_nazwa odnosi się do tablicy.
Program:
Zobacz kod na konsoli Bash:
Wyjście: