Bash espere pelo KeyPress

Bash espere pelo KeyPress
O comando 'read' é usado para obter a entrada do usuário em um script bash. Podemos obter informações no script Bash usando vários tipos de opções com o comando de leitura. Às vezes, precisamos escrever o script de forma que o script seja executado até que uma chave específica seja pressionada ou o script específico será executado com base na chave específica ou no programa aguardará a quantidade específica de tempo até que qualquer tecla seja pressionada. Como você pode escrever scripts bash para aguardar qualquer chave em particular ou qualquer chave para algumas tarefas é mostrada neste tutorial usando exemplos diferentes.

Exemplo 1:

Crie um arquivo bash com o seguinte script. Quando você executar o script, ele continuará até que o usuário pressione qualquer tecla. O script aguardará a entrada do usuário a cada 3 segundos e, se o usuário não pressionar nenhuma tecla, ele imprimirá a mensagem: “Esperando pelo KeyPress““.

#!/BIN/BASH
eco "pressione qualquer tecla para continuar"
enquanto [verdadeiro]; fazer
Leia -T 3 -N 1
se [$? = 0]; então
saída ;
outro
eco "Esperando o Keypress"
fi
feito

Execute o script.

$ Bash Key1.sh

Saída:

Exemplo#2:

Crie um arquivo bash com o seguinte script. Um infinito enquanto o loop é usado neste exemplo que será encerrado quando o usuário pressionará 'Q'. Se o usuário pressionar alguma tecla sem 'q', o valor da variável contador será aumentado em 1 e imprimirá o valor.

#!/BIN/BASH
eco "pressione 'q' para sair"
contagem = 0
enquanto : ; fazer
Leia -N 1 K <&1
se [[$ k = q]]; então
printf "\ nQuitting do programa \ n"
quebrar
outro
((count = $ count+1))
printf "\ niterate para $ conting times \ n"
eco "pressione 'q' para sair"
fi
feito

Execute o script.

$ Bash Key2.sh

Saída:

Exemplo#3:

Crie um arquivo bash com o seguinte script que realizará diferentes tipos de tarefas com base na tecla pressionada pelo usuário. Se o usuário pressionar '1', ele adicionará dois argumentos da linha de comando e imprimirá. Se o usuário pressionar '2', subtrairá dois argumentos da linha de comando e imprimirá. O script será executado continuamente até o usuário pressionar '3'.

#!/BIN/BASH
v1 = $ 1
v2 = $ 2
enquanto :
fazer
eco "1. Adição"
eco "2. Subtração"
eco "3. Desistir"
eco -n "tipo 1 ou 2 ou 3:"
Leia -n 1 -t 15 a
printf "\ n"
caso $ a em
1*) echo "$ v1 + $ v2 = $ (($ v1 + $ v2))" ;;
2*) eco "$ v1 - $ v2 = $ (($ v1- $ v2))" ;;
3*) saída 0 ;;
*) eco "tente novamente.";;
ESAC
feito

Execute o script com dois valores de argumento numérico.

$ Bash Key3.SH 35 15

Saída:

Exemplo#4:

Crie um arquivo bash com o seguinte script. O script será encerrado quando o usuário pressionar a tecla ESC. Este script imprimirá as chaves pressionadas pelo usuário até que a tecla ESC seja pressionada.

#!/BIN/BASH
userInput = ""
eco "pressione a tecla Esc para sair"
# Leia um único personagem
enquanto lida -r -n1 chave
fazer
# se input == ESC Key
se [[$ key == $ '\ e']];
então
quebrar;
fi
# Adicione a tecla à variável que é pressionada pelo usuário.
userInput+= $ tecla
feito
printf "\ nyou digitou: $ userInput \ n"

Execute o script.

$ Bash Key4.sh

Saída:

Exemplo#5:

Crie um arquivo bash com o seguinte código que aguarda a tecla Enter para encerrar o script. O script tomará um nome de servidor como entrada e tentará pingar o servidor a cada 2 segundos. Se o comando ping receber a resposta do servidor, ele encerrará o script exibindo a saída, caso contrário, ele aguardará a resposta do usuário ou entrará na tecla imprimindo a mensagem: "Tentando se conectar com ...".

#!/BIN/BASH
eco "insira o endereço do servidor que você deseja ping"
Leia o servidor
enquanto ! ping -c 1 -n -w 2 $ servidor
fazer
eco "tentando se conectar com $ server"
eco "Pressione [Enter] para rescindir"
Leia -s -n 1 -t 1 chave
se [[$ key == $ '\ x0a']]; # se input == enter a tecla
então
saída 0
fi
feito
printf "%s \ n" "$ servidor está em execução"

Execute o script.

$ Bash Key5.sh

Saída:

Conclusão:

Este tutorial mostra como você pode escrever o script Bash de várias maneiras que aguardam a entrada do usuário fazer qualquer tarefa específica ou encerrar o script. Espero que, depois de praticar os exemplos acima, você poderá escrever o script de tal maneira que pode esperar por qualquer tecla e executar a tarefa específica com base na tecla pressionada pelo usuário.