Ejemplo 1:
Cree un archivo bash con la siguiente secuencia de comandos. Cuando ejecute el script, continuará hasta que el usuario presione cualquier tecla. La secuencia de comandos esperará la entrada del usuario cada 3 segundos y si el usuario no presiona ninguna tecla, imprimirá el mensaje. esperando la pulsación de la tecla .
#! / bin / bash
echo 'Pulse cualquier tecla para continuar'
tiempo [ cierto ];hacer
leer -t 3 -norte 1
si [ $?=0 ];luego
Salida;
demás
echo 'esperando la pulsación de tecla'
ser
hecho
Ejecute el script.
$intentokey1.sh
Producción:
Ejemplo # 2:
Cree un archivo bash con la siguiente secuencia de comandos. En este ejemplo se usa un bucle while infinito que terminará cuando el usuario presione 'q'. Si el usuario presiona cualquier tecla sin 'q', el valor de la variable del contador aumentará en 1 e imprimirá el valor.
#! / bin / bashecho 'Presione' q 'para salir'
contar=0
tiempo: ;hacer
leer -norte 1para<&1
si [[ $ k= q]];luego
printf ' orteSalir del programa orte'
rotura
demás
((contar=$ count+1))
printf ' orteIterar por$ countveces orte'
echo 'Presione' q 'para salir'
ser
hecho
Ejecute el script.
$intentokey2.sh
Producción:
Ejemplo # 3:
Cree un archivo bash con el siguiente script que realizará diferentes tipos de tareas en función de la tecla presionada por el usuario. Si el usuario presiona '1', 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á. La secuencia de comandos se ejecutará continuamente hasta que el usuario presione '3'.
#! / bin / bashv1=$1
v2=$2
tiempo:
hacer
echo «1. Adición'
echo «2. Sustracción'
echo «3. Dejar'
echo -norte 'Tipo 1 o 2 o 3:'
leer -norte 1 -t 15a
printf ' orte'
caso $a en
1* ) echo '$ v1+$ v2=$ (($ v1 + $ v2))';;
2* ) echo '$ v1-$ v2=$ (($ v1- $ v2))';;
3* ) Salida 0;;
* ) echo 'Intentar otra vez.';;
esac
hecho
Ejecute el script con dos valores de argumentos numéricos.
$intentokey3.sh35 15Producción:
Ejemplo # 4:
Cree un archivo bash con la siguiente secuencia de comandos. 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 / bashentrada del usuario=''
echo 'Presione la tecla ESC para salir'
# leer un solo carácter
tiempo leer -r -n1llave
hacer
# if entrada == tecla ESC
si [[ $ clave== $'Y' ]];
luego
rotura;
ser
# Agregue la clave a la variable que presiona el usuario.
entrada de usuario + =$ clave
hecho
printf ' orteHa escrito:$ userinput orte'
Ejecute el script.
$intentokey4.shProducción:
Ejemplo # 5:
Cree un archivo bash con el siguiente código que esperará a que la tecla ENTER termine el script. La secuencia de comandos 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, terminará el script mostrando la salida; de lo contrario, esperará la respuesta del usuario o la tecla ENTER imprimiendo el mensaje, Intentando conectarse con….
#! / bin / bashecho 'Ingrese la dirección del servidor al que desea hacer ping'
leerservidor
tiempo ! silbido -c 1 -norte -EN 2 $ servidor
hacer
echo 'Tratando de conectar con$ servidor'
echo 'Presione [ENTER] para terminar'
leer -s -NORTE 1 -t 1llave
si [[ $ clave== $' x0a' ]];# if input == tecla ENTER
luego
Salida 0
ser
hecho
printf '%s orte' '$ servidorEsta corriendo'
Ejecute el script.
$intentokey5.shProducción:
Conclusión:
Este tutorial muestra cómo puede escribir el script bash de varias formas que esperarán la entrada del usuario para realizar una tarea específica o terminar el script. Espero que, después de practicar los ejemplos anteriores, pueda escribir el script de tal manera que pueda esperar a que se presione cualquier tecla y realizar la tarea en particular según la tecla presionada por el usuario.