Exemplul nr. 1:
Creați un fișier bash cu următorul script. Când veți rula scriptul, acesta va continua până când utilizatorul apasă orice tastă. Scriptul va aștepta introducerea utilizatorului în fiecare 3 secunde și dacă utilizatorul nu apasă nici o tastă, atunci va imprima mesajul, așteptând apăsarea tastei .
#! / bin / bash
aruncat 'Apăsați orice tastă pentru a continua'
in timp ce [ Adevărat ];do
citit -t 3 -n 1
dacă [ $?=0 ];atunci
Ieșire;
altceva
aruncat „așteptând apăsarea tastei”
fi
Terminat
Rulați scriptul.
$bashcheie1.sh
Ieșire:
Exemplul 2:
Creați un fișier bash cu următorul script. În acest exemplu se folosește o buclă infinită de timp, care se va termina atunci când utilizatorul va apăsa „q”. Dacă utilizatorul apasă orice tastă fără „q”, atunci valoarea variabilei contorului va fi mărită cu 1 și va imprima valoarea.
#! / bin / basharuncat 'Apăsați' q 'pentru a ieși'
numara=0
in timp ce:;do
citit -n 1la<&1
dacă [[ $ k= q]];atunci
printf ' nRenunțarea la program n'
pauză
altceva
((numara=$ conta+1))
printf ' nIterează pentru$ contaori n'
aruncat 'Apăsați' q 'pentru a ieși'
fi
Terminat
Rulați scriptul.
$bashcheia2.sh
Ieșire:
Exemplul nr. 3:
Creați un fișier bash cu următorul script care va face diferite tipuri de sarcini pe baza tastei apăsate de utilizator. Dacă utilizatorul apasă „1”, atunci va adăuga două argumente de linie de comandă și va imprima. Dacă utilizatorul apasă „2”, atunci va scădea două argumente din linia de comandă și va imprima. Scriptul va rula continuu până când utilizatorul apasă „3”.
#! / bin / bashv1=1 $
v2=2 USD
in timp ce:
do
aruncat „1. Plus'
aruncat „2. Scădere'
aruncat „3. Părăsi'
aruncat -n „Tipul 1 sau 2 sau 3:”
citit -n 1 -t cincisprezecela
printf ' n'
caz $ a în
1* ) aruncat '$ v1+$ v2=$ (($ v1 + $ v2)) ';;
2* ) aruncat '$ v1-$ v2=$ (($ v1- $ v2)) ';;
3* ) Ieșire 0;;
* ) aruncat 'Încearcă din nou.';;
esac
Terminat
Rulați scriptul cu două valori de argument numerice.
$bashcheia3.sh35 cincisprezeceIeșire:
Exemplul # 4:
Creați un fișier bash cu următorul script. Scriptul se va termina atunci când utilizatorul va apăsa tasta ESC. Acest script va imprima tastele apăsate de utilizator până când este apăsată tasta ESC.
#! / bin / bashintroducere utilizator=''
aruncat „Apăsați tasta ESC pentru a ieși”
# citește un singur caracter
in timp ce citit -r -n1cheie
do
# if input == tasta ESC
dacă [[ $ cheie== $'Și' ]];
atunci
pauză;
fi
# Adăugați tasta la variabila care este apăsată de utilizator.
userinput + =$ cheie
Terminat
printf ' nAți tastat:$ userinput n'
Rulați scriptul.
$bashcheia4.shIeșire:
Exemplul # 5:
Creați un fișier bash cu următorul cod care va aștepta cheia ENTER pentru a termina scriptul. Scriptul va lua un nume de server ca intrare și va încerca să facă ping pe server în fiecare 2 secunde. Dacă comanda ping primește răspunsul de la server, atunci va termina scriptul afișând rezultatul, altfel va aștepta răspunsul utilizatorului sau tasta ENTER imprimând mesajul, Încercând să se conecteze cu ....
#! / bin / basharuncat „Introduceți adresa serverului pe care doriți să faceți ping”
cititServer
in timp ce ! ping -c 1 -n -ÎN 2 $ server
do
aruncat - Încerc să mă conectez$ server'
aruncat „Apăsați [ENTER] pentru a termina”
citit -s -N 1 -t 1cheie
dacă [[ $ cheie== $„ x0a” ]];# if input == tasta ENTER
atunci
Ieșire 0
fi
Terminat
printf '% s n' '$ serverrulează'
Rulați scriptul.
$bashcheie5.shIeșire:
Concluzie:
Acest tutorial arată cum puteți scrie scriptul bash în diferite moduri care vor aștepta introducerea utilizatorului pentru a efectua orice sarcină specifică sau pentru a termina scriptul. Sper că, după practicarea exemplelor de mai sus, veți putea scrie scriptul în așa fel încât să puteți aștepta orice apăsare de tastă și să efectuați sarcina specială pe baza tastei apăsate de utilizator.