Przykład 1:
Utwórz plik bash za pomocą następującego skryptu. Gdy uruchomisz skrypt, będzie on kontynuowany, dopóki użytkownik nie naciśnie dowolnego klawisza. Skrypt będzie czekał na dane wejściowe co 3 sekundy i jeśli użytkownik nie naciśnie żadnego klawisza, to wyświetli komunikat, czekam na naciśnięcie klawisza .
#!/kosz/bash
wyrzucił 'Naciśnij dowolny klawisz, aby kontynuować'
podczas [ prawda ];robić
czytać -T 3 -n 1
Jeśli [ $?=0 ];następnie
Wyjście;
w przeciwnym razie
wyrzucił „czekam na naciśnięcie klawisza”
być
Gotowe
Uruchom skrypt.
$grzmotnąćkey1.sh
Wyjście:
Przykład #2:
Utwórz plik bash za pomocą następującego skryptu. W tym przykładzie użyto nieskończonej pętli while, która zakończy się, gdy użytkownik naciśnie „q”. Jeśli użytkownik naciśnie dowolny klawisz bez „q”, to wartość zmiennej licznika zostanie zwiększona o 1 i wydrukowana wartość.
#!/kosz/bashwyrzucił 'Naciśnij 'q', aby wyjść'
liczyć=0
podczas:;robić
czytać -n 1do<&1
Jeśli [[ $ k= q]];następnie
printf ' Rezygnacja z programu '
przerwa
w przeciwnym razie
((liczyć=$count+1))
printf ' Iteruj przez$countczasy '
wyrzucił 'Naciśnij 'q', aby wyjść'
być
Gotowe
Uruchom skrypt.
$grzmotnąćklucz2.sh
Wyjście:
Przykład #3:
Utwórz plik bash za pomocą następującego skryptu, który wykona różne typy zadań w oparciu o klawisz naciśnięty przez użytkownika. Jeśli użytkownik naciśnie „1”, doda dwa argumenty wiersza poleceń i wydrukuje. Jeśli użytkownik naciśnie „2”, odejmie dwa argumenty wiersza poleceń i wydrukuje. Skrypt będzie działał nieprzerwanie, dopóki użytkownik nie naciśnie „3”.
#!/kosz/bashv1=1 zł
v2=2 zł
podczas:
robić
wyrzucił „1. Dodatek'
wyrzucił „2. Odejmowanie'
wyrzucił „3. Zrezygnować'
wyrzucił -n „Typ 1 lub 2 lub 3:”
czytać -n 1 -T piętnaściedo
printf ' '
Obudowa $ a w
1* ) wyrzucił '$v1+$v2=$(($v1+$v2)) ';;
2* ) wyrzucił '$v1-$v2=$(($v1-$v2)) ';;
3* ) Wyjście 0;;
* ) wyrzucił 'Spróbuj ponownie.';;
esac
Gotowe
Uruchom skrypt z dwiema liczbowymi wartościami argumentów.
$grzmotnąćkey3.sh35 piętnaścieWyjście:
Przykład nr 4:
Utwórz plik bash za pomocą następującego skryptu. Skrypt zakończy się, gdy użytkownik naciśnie klawisz ESC. Ten skrypt wydrukuje klawisze naciskane przez użytkownika do momentu naciśnięcia klawisza ESC.
#!/kosz/bashdane wejściowe użytkownika=''
wyrzucił 'Naciśnij klawisz ESC, aby wyjść'
# przeczytaj pojedynczy znak
podczas czytać -r -n1klucz
robić
# jeśli wejście == klawisz ESC
Jeśli [[ $klucz== $'I' ]];
następnie
przerwa;
być
# Dodaj klucz do zmiennej, który jest wciśnięty przez użytkownika.
userinput+=$klucz
Gotowe
printf ' Wpisałeś :$wejście użytkownika '
Uruchom skrypt.
$grzmotnąćkey4.shWyjście:
Przykład nr 5:
Utwórz plik bash z następującym kodem, który będzie czekał, aż klawisz ENTER zakończy działanie skryptu. Skrypt przyjmie nazwę serwera jako dane wejściowe i będzie próbował pingować serwer co 2 sekundy. Jeśli polecenie ping otrzyma odpowiedź z serwera, zakończy działanie skryptu, wyświetlając dane wyjściowe, w przeciwnym razie będzie czekać na odpowiedź użytkownika lub klawisz ENTER, wyświetlając komunikat Próba połączenia z….
#!/kosz/bashwyrzucił 'Wprowadź adres serwera, który chcesz pingować'
czytaćserwer
podczas ! świst -C 1 -n -W 2 $serwer
robić
wyrzucił „Próbuję się połączyć z”$serwer'
wyrzucił 'Naciśnij [ENTER], aby zakończyć'
czytać -s -N 1 -T 1klucz
Jeśli [[ $klucz== $' x0a' ]];# jeśli wejście == klawisz ENTER
następnie
Wyjście 0
być
Gotowe
printf '%s ' '$serwerbiegnie'
Uruchom skrypt.
$grzmotnąćkey5.shWyjście:
Wniosek:
Ten samouczek pokazuje, w jaki sposób można napisać skrypt bash na różne sposoby, które będą czekać na dane wejściowe użytkownika w celu wykonania określonego zadania lub zakończenia skryptu. Mam nadzieję, że po przećwiczeniu powyższych przykładów będziesz w stanie napisać skrypt w taki sposób, aby mógł czekać na każde naciśnięcie klawisza i wykonać dane zadanie na podstawie klawisza wciśniętego przez użytkownika.