Bash Aspetta per keypress

Bash Aspetta per keypress
Il comando "Leggi" viene utilizzato per prendere l'input dell'utente in uno script bash. Possiamo fare input nello script bash utilizzando vari tipi di opzioni con il comando di lettura. A volte dobbiamo scrivere lo script in modo tale che lo script verrà eseguito fino a quando non viene premuto un tasto specifico o lo script particolare si eseguirà in base al tasto specifico o il programma attende la quantità di tempo specifica fino a quando non viene premuto qualsiasi tasto. Come è possibile scrivere script bash per attendere qualsiasi chiave particolare o qualsiasi chiave per alcune attività viene 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 preme qualsiasi tasto. Lo script aspetterà l'input dell'utente in ogni 3 secondi e se l'utente non preme un tasto, verrà fornito il messaggio, "Aspettando il KeyPress".

#!/Bin/Bash
Echo "Premi qualsiasi tasto per continuare"
mentre [vero]; Fare
Leggi -t 3 -N 1
Se [$? = 0]; Poi
Uscita ;
altro
Echo "Aspettando il tastica"
fi
Fatto

Esegui lo script.

$ bash key1.sh

Produzione:

Esempio n. 2:

Crea un file bash con il seguente script. In questo esempio viene utilizzato un ciclo infinito mentre terminerà quando l'utente premi "Q". Se l'utente preme un tasto senza "Q", il valore della variabile contatore verrà aumentato di 1 e stampare il valore.

#!/Bin/Bash
Echo "Premere" Q "per uscire"
conta = 0
Mentre : ; Fare
Leggi -N 1 k <&1
if [[$ k = q]]; Poi
printf "\ nquitting dal programma \ n"
rottura
altro
((count = $ count+1))
printf "\ niNate per $ COUNT TEMS \ n"
Echo "Premere" Q "per uscire"
fi
Fatto

Esegui lo script.

$ bash key2.sh

Produzione:

Esempio#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 di comando e stampa. Se l'utente preme "2", sottraggerà due argomenti della riga di comando e stampa. Lo script verrà eseguito continuamente fino a quando l'utente preme "3".

#!/Bin/Bash
v1 = $ 1
v2 = $ 2
Mentre :
Fare
Echo "1. Aggiunta "
Echo "2. Sottrazione"
Echo "3. Esentato"
echo -n "Tipo 1 o 2 o 3:"
Leggi -n 1 -t 15 a
printf "\ n"
Caso $ a in
1*) echo "$ v1 + $ v2 = $ (($ v1 + $ v2))" ;;
2*) echo "$ v1 - $ v2 = $ (($ v1- $ v2))" ;;
3*) uscita 0 ;;
*) echo "riprova.";;
Esac
Fatto

Esegui lo script con due valori di argomenti numerici.

$ bash key3.Sh 35 15

Produzione:

Esempio#4:

Crea un file bash con il seguente script. Lo script terminerà quando l'utente premi il tasto ESC. Questo script stamperà i tasti premuti dall'utente fino a quando non viene premuto il tasto ESC.

#!/Bin/Bash
userInput = ""
Echo "Premi il tasto ESC per smettere"
# Leggi un singolo personaggio
mentre leggi -r -n1 chiave
Fare
# se input == ESC Key
if [[$ key == $ '\ e']];
Poi
rottura;
fi
# Aggiungi il tasto alla variabile che viene premuta dall'utente.
UserInput+= $ Key
Fatto
printf "\ nyou ha digitato: $ userinput \ n"

Esegui lo script.

$ bash key4.sh

Produzione:

Esempio#5:

Crea un file bash con il seguente codice che attende il tasto ENTER per terminare lo script. Lo script prenderà un nome del 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 immettere il tasto stampando il messaggio, "tenendo di connettersi con ...".

#!/Bin/Bash
Echo "Immettere l'indirizzo del server che si desidera eseguire il ping"
Leggi il server
Mentre ! ping -c 1 -n -w 2 $ server
Fare
Echo "cercando di connettersi con $ server"
Echo "Premere [Enter] per terminare"
Leggi -s -n 1 -t 1 chiave
if [[$ key == $ '\ x0a']; # se input == INVIO CHIAVE
Poi
uscita 0
fi
Fatto
printf "%s \ n" "$ server è in esecuzione"

Esegui lo script.

$ bash key5.sh

Produzione:

Conclusione:

Questo tutorial mostra come è possibile scrivere lo script bash in vari modi che aspetteranno che l'input dell'utente faccia qualsiasi attività specifica o termina lo script. Spero, dopo aver praticato gli esempi di cui sopra, sarai in grado di scrivere lo script in modo tale che può attendere qualsiasi chiave di chiave e fare l'attività particolare in base al tasto premuto dall'utente.