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.