Exemple 1:
Creeu un fitxer bash amb el següent script. Quan executeu l'script, continuarà fins que l'usuari prem qualsevol tecla. El script esperarà l'entrada de l'usuari cada 3 segons i, si l'usuari no prem cap tecla, imprimirà el missatge, esperant la pulsació de tecla .
#! / bin / bash
trobo 'Premeu qualsevol tecla per continuar'
mentre [ cert ];fer
llegir -t 3 -n 1
si [ $?=0 ];llavors
sortir;
en cas contrari
trobo 'esperant la pressió'
ser
fet
Executeu l'script.
$bashkey1.sh
Sortida:
Exemple 2:
Creeu un fitxer bash amb el següent script. En aquest exemple s’utilitza un bucle while infinit que finalitzarà quan l’usuari premgi 'q'. Si l'usuari prem qualsevol tecla sense 'q', el valor de la variable de comptador s'incrementarà 1 i s'imprimirà el valor.
#! / bin / bashtrobo 'Premeu' q 'per sortir'
comptar=0
mentre:;fer
llegir -n 1a<&1
si [[ $ k= q]];llavors
printf ' nSurt del programa n'
trencar
en cas contrari
((comptar=$ recompte+1))
printf ' nIterar per$ recomptevegades n'
trobo 'Premeu' q 'per sortir'
ser
fet
Executeu l'script.
$bashkey2.sh
Sortida:
Exemple 3:
Creeu un fitxer bash amb el següent script que farà diferents tipus de tasques en funció de la tecla premuda per l'usuari. Si l'usuari prem '1', afegirà dos arguments de línia d'ordres i imprimirà. Si l'usuari prem '2', restarà dos arguments de la línia d'ordres i imprimirà. El guió s’executarà contínuament fins que l’usuari premgui '3'.
#! / bin / bashv1=$ 1
v2=$ 2
mentre:
fer
trobo «1. Addició '
trobo '2. Resta '
trobo «3. Deixa
trobo -n 'Tipus 1 o 2 o 3:'
llegir -n 1 -t 15a
printf ' n'
Caixa $ a dins
1* ) trobo '$ v1+$ v2=$ (($ v1 + $ v2)) ';;
2* ) trobo '$ v1-$ v2=$ (($ v1- $ v2)) ';;
3* ) sortir 0;;
* ) trobo 'Torna-ho a provar'.;;
esac
fet
Executeu l'script amb dos valors d'argument numèric.
$bashkey3.sh35 15Sortida:
Exemple # 4:
Creeu un fitxer bash amb el següent script. El script finalitzarà quan l'usuari premgi la tecla ESC. Aquest script imprimirà les tecles premudes per l'usuari fins que es prem la tecla ESC.
#! / bin / bashentrada d’usuari=''
trobo 'Premeu la tecla ESC per sortir'
# llegir un sol caràcter
mentre llegir -r -n1clau
fer
# if input == clau ESC
si [[ $ clau== $' I' ]];
llavors
trencar;
ser
# Afegiu la tecla a la variable que prem l'usuari.
entrada d’usuari + =$ clau
fet
printf ' nHeu escrit:$ entrada d'usuari n'
Executeu l'script.
$bashkey4.shSortida:
Exemple 5:
Creeu un fitxer bash amb el codi següent que esperarà a que la tecla ENTER finalitzi l'script. L'script agafarà un nom de servidor com a entrada i intentarà fer ping al servidor cada 2 segons. Si l'ordre ping obté la resposta del servidor, acabarà l'script mostrant la sortida, en cas contrari, esperarà la resposta de l'usuari o la tecla ENTER imprimint el missatge, intentant connectar-se amb ....
#! / bin / bashtrobo 'Introduïu l'adreça del servidor que voleu fer ping'
llegirservidor
mentre ! ping -c 1 -n -EN 2 $ servidor
fer
trobo 'Intentant connectar amb$ servidor'
trobo 'Premeu [ENTER] per finalitzar'
llegir -s -N 1 -t 1clau
si [[ $ clau== $' x0a' ]];# if input == tecla ENTER
llavors
sortir 0
ser
fet
printf '% s n' '$ servidorestà corrent'
Executeu l'script.
$bashkey5.shSortida:
Conclusió:
Aquest tutorial mostra com podeu escriure l'script bash de diverses maneres que esperaran a l'entrada de l'usuari per fer qualsevol tasca específica o finalitzar l'script. Espero que, després de practicar els exemples anteriors, pugueu escriure l'script de manera que pugueu esperar a prémer qualsevol tecla i fer la tasca en funció de la tecla que prem l'usuari.