O'Reilly logo

Bash. Receptury by Cameron Newham, JP Vossen, Carl Albing

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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" ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required