3.7. Wybór opcji z listy
Problem
Użytkownik powinien zobaczyć listę dostępnych odpowiedzi i mieć możliwość łatwego wyboru jednej z nich.
Rozwiązanie
Rozwiązanie polega na zastosowaniu wbudowanego polecenia powłoki bash select
, które służy do generowania menu i umożliwia użytkownikowi wybranie numeru właściwej pozycji.
# plik receptury: select_dir directorylist="Koniec $(for i in /*;do [ -d "$i" ] && echo $i; done)" PS3='Wybierz katalog: ' # Komunikat opisujący listę opcji until [ "$directory" == "Koniec" ]; do printf "%b" "\a\n\nLista dostępnych katalogów:\n" >&2 select directory in $directorylist; do # Choć użytkownik wpisuje wartość liczbową, która jest przechowywana w zmiennej # $REPLY, instrukcja select zwraca ciąg tekstowy opcji if [ "$directory" ...
Get Bash. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.