Bash aspetta la pressione dei tasti

Bash Wait Keypress



Il comando `read` è usato per prendere l'input dell'utente in uno script bash. Possiamo prendere input nello script bash usando vari tipi di opzioni con il comando read. A volte è necessario scrivere lo script in modo tale che lo script venga eseguito finché non viene premuto un tasto specifico o lo script specifico verrà eseguito in base al tasto specifico o il programma attenderà per il periodo di tempo specifico finché non viene premuto un tasto. Come puoi scrivere uno script bash per attendere una chiave particolare o una chiave per alcune attività è mostrato in questo tutorial usando diversi esempi.

Esempio 1:

Crea un file bash con il seguente script. Quando eseguirai lo script, continuerà fino a quando l'utente non premerà un tasto qualsiasi. Lo script attenderà l'input dell'utente ogni 3 secondi e se l'utente non preme alcun tasto stamperà il messaggio, aspettando la pressione del tasto .







#!/bin/bash
buttato fuori 'Premere un tasto qualsiasi per continuare'
mentre [ vero ];fare
leggere -T 3 -n 1
Se [ $?=0 ];poi
Uscita;
altro
buttato fuori 'in attesa della pressione dei tasti'
essere
fatto

Esegui lo script.



$bashtasto1.sh

Produzione:







Esempio n. 2:

Crea un file bash con il seguente script. In questo esempio viene utilizzato un ciclo while infinito che terminerà quando l'utente premerà 'q'. Se l'utente preme un tasto qualsiasi senza 'q', il valore della variabile contatore verrà aumentato di 1 e verrà stampato il valore.

#!/bin/bash
buttato fuori 'Premi 'q' per uscire'
contare=0
mentre:;fare
leggere -n 1a<&1
Se [[ $ k= q]];poi
printf ' Uscire dal programma '
rottura
altro
((contare=$conta+1))
printf ' Itera per$contavolte '
buttato fuori 'Premi 'q' per uscire'
essere
fatto

Esegui lo script.



$bashtasto2.sh

Produzione:

Esempio n. 3:

Crea un file bash con il seguente script che eseguirà diversi tipi di attività in base al tasto premuto dall'utente. Se l'utente preme '1', aggiungerà due argomenti della riga di comando e stamperà. Se l'utente preme '2', sottrae due argomenti della riga di comando e stampa. Lo script verrà eseguito continuamente finché l'utente non preme '3'.

#!/bin/bash
v1=$ 1
v2=$ 2
mentre:
fare
buttato fuori '1. aggiunta'
buttato fuori '2. Sottrazione'
buttato fuori '3. Uscire'
buttato fuori -n 'Tipo 1 o 2 o 3 :'
leggere -n 1 -T quindicia
printf ' '
Astuccio $ a in
1* ) buttato fuori '$v1+$v2=$(($v1+$v2)) ';;

2* ) buttato fuori '$v1-$v2=$(($v1-$v2)) ';;

3* ) Uscita 0;;


* ) buttato fuori 'Riprova.';;
esac
fatto

Esegui lo script con due valori di argomento numerico.

$bashtasto3.sh35 quindici

Produzione:

Esempio n. 4:

Crea un file bash con il seguente script. Lo script terminerà quando l'utente premerà il tasto ESC. Questo script stamperà i tasti premuti dall'utente fino alla pressione del tasto ESC.

#!/bin/bash
input dell'utente=''
buttato fuori 'Premi il tasto ESC per uscire'
# legge un singolo carattere
mentre leggere -R -n1chiave
fare
# if input == tasto ESC
Se [[ $chiave== $'e' ]];
poi
rottura;
essere
# Aggiunge il tasto alla variabile che viene premuta dall'utente.
inpututente+=$chiave
fatto
printf ' Hai digitato:$input utente '

Esegui lo script.

$bashkey4.sh

Produzione:

Esempio n. 5:

Crea un file bash con il seguente codice che attenderà il tasto INVIO per terminare lo script. Lo script prenderà un nome di server come input e proverà a eseguire il ping del server ogni 2 secondi. Se il comando ping ottiene la risposta dal server, terminerà lo script visualizzando l'output, altrimenti attenderà la risposta dell'utente o il tasto INVIO stampando il messaggio, Tentativo di connessione con….

#!/bin/bash
buttato fuori 'Inserisci l'indirizzo del server di cui vuoi eseguire il ping'
leggereserver
mentre ! ping -C 1 -n -IN 2 $server
fare
buttato fuori 'Cercando di connettersi con$server'
buttato fuori 'Premere [ENTER] per terminare'
leggere -S -N 1 -T 1chiave
Se [[ $chiave== $' x0a' ]];# if input == tasto INVIO
poi
Uscita 0
essere
fatto
printf '%S ' '$serversta correndo'

Esegui lo script.

$bashkey5.sh

Produzione:

Conclusione:

Questo tutorial mostra come puoi scrivere lo script bash in vari modi che aspetteranno l'input dell'utente per eseguire qualsiasi attività specifica o terminare lo script. Spero che, dopo aver praticato gli esempi precedenti, sarai in grado di scrivere lo script in modo tale da poter attendere qualsiasi pressione di un tasto e svolgere il compito particolare in base al tasto premuto dall'utente.