Bash espera para KeyPress

Bash espera para KeyPress
El comando 'Read' se utiliza para tomar la entrada del usuario en un script bash. Podemos tomar la entrada en el script bash utilizando varios tipos de opciones con el comando leer. A veces necesitamos escribir el script de tal manera que el script se ejecutará hasta que se presione una tecla específica o el script en particular se ejecutará en función de la tecla específica o el programa esperará la cantidad de tiempo específica hasta que se presione cualquier tecla. En este tutorial, se muestra cómo puede escribir script bash para esperar cualquier clave en particular o cualquier clave para algunas tareas utilizando diferentes ejemplos.

Ejemplo 1:

Crear un archivo bash con el siguiente script. Cuando ejecute el script, continuará hasta que el usuario presione cualquier tecla. El script esperará la entrada del usuario cada 3 segundos y si el usuario no presiona ninguna tecla, imprimirá el mensaje ","Esperando a KeyPress".

#!/bin/bash
Echo "Presione cualquier tecla para continuar"
mientras [verdadero]; hacer
leer -t 3 -n 1
Si [$? = 0]; entonces
salida ;
demás
Echo "Esperando a KeyPress"
FI
hecho

Ejecutar el guión.

$ bash key1.mierda

Producción:

Ejemplo#2:

Crear un archivo bash con el siguiente script. Un bucle infinito se usa en este ejemplo que terminará cuando el usuario presione 'Q'. Si el usuario presiona cualquier tecla sin 'Q', el valor de la variable contador se incrementará en 1 e imprimirá el valor.

#!/bin/bash
echo "presione 'Q' para salir"
recuento = 0
mientras : ; hacer
leer -n 1 k <&1
if [[$ k = q]]; entonces
printf "\ nquitting del programa \ n"
romper
demás
((Count = $ Count+1))
printf "\ Niterate por $ Count Times \ n"
echo "presione 'Q' para salir"
FI
hecho

Ejecutar el guión.

$ bash key2.mierda

Producción:

Ejemplo#3:

Cree un archivo bash con el siguiente script que hará diferentes tipos de tareas en función de la tecla presionada por el usuario. Si el usuario presiona '1', entonces agregará dos argumentos de línea de comando e imprimirá. Si el usuario presiona '2', restará dos argumentos de línea de comando e imprimirá. El script se ejecutará continuamente hasta que el usuario presione '3'.

#!/bin/bash
V1 = $ 1
V2 = $ 2
mientras :
hacer
Echo "1. Suma"
Echo "2. Sustracción"
Echo "3. Abandonar"
echo -n "tipo 1 o 2 o 3:"
leer -n 1 -t 15 a
printf "\ n"
Caso $ a en
1*) echo "$ v1 + $ v2 = $ (($ v1 + $ v2))" ;;
2*) echo "$ v1 - $ v2 = $ (($ v1- $ v2))" ;;
3*) Salir 0 ;;
*) echo "intente de nuevo.";;
ESAC
hecho

Ejecute el script con dos valores de argumentos numéricos.

$ bash key3.sh 35 15

Producción:

Ejemplo#4:

Crear un archivo bash con el siguiente script. El script terminará cuando el usuario presione la tecla ESC. Este script imprimirá las teclas presionadas por el usuario hasta que se presione la tecla ESC.

#!/bin/bash
userInput = ""
echo "Presione la tecla Esc para dejar de fumar"
# Lea un solo personaje
Mientras lea la tecla de -r -n1
hacer
# si entrada == ESC Key
if [[$ key == $ '\ e']];
entonces
romper;
FI
# Agregue la tecla a la variable que presiona el usuario.
UserInput+= $ Key
hecho
printf "\ nyou ha escrito: $ userInput \ n"

Ejecutar el guión.

$ bash key4.mierda

Producción:

Ejemplo#5:

Cree un archivo bash con el siguiente código que esperará la tecla ENTER para finalizar el script. El script tomará un nombre de servidor como entrada e intentará hacer ping al servidor cada 2 segundos. Si el comando ping obtiene la respuesta del servidor, entonces terminará el script mostrando la salida, de lo contrario, esperará la respuesta del usuario o ingrese la clave imprimiendo el mensaje, "Intentando conectarse con ...".

#!/bin/bash
echo "Ingrese la dirección del servidor que desea hacer ping"
servidor de lectura
mientras ! ping -c 1 -n -w 2 $ servidor
hacer
Echo "Intentando conectarse con $ servidor"
echo "presione [enter] para terminar"
leer -s -n 1 -t 1 clave
if [[$ key == $ '\ x0a']]; # si entrada == Ingrese la tecla
entonces
Salir 0
FI
hecho
printf "%s \ n" "$ Server se está ejecutando"

Ejecutar el guión.

$ bash key5.mierda

Producción:

Conclusión:

Este tutorial muestra cómo puede escribir el script bash de varias maneras que esperarán a que la entrada del usuario haga cualquier tarea específica o termine el script. Esperanza, después de practicar los ejemplos anteriores, podrá escribir el script de tal manera que pueda esperar a cualquier KeyPress y hacer la tarea particular basada en la tecla presionada por el usuario.