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 a tecla pressionada .
#! / bin / bash
jogou fora 'Pressione qualquer tecla para continuar'
enquanto [ verdade ];Faz
leitura -t 3 -n 1
E se [ $?=0 ];então
saída;
outro
jogou fora 'esperando o pressionamento de tecla'
ser
feito
Execute o script.
$bashkey1.sh
Saída:
Exemplo # 2:
Crie um arquivo bash com o seguinte script. Um loop while infinito é usado neste exemplo, que terminará quando o usuário pressionar 'q'. Se o usuário pressionar qualquer tecla sem 'q', o valor da variável do contador será aumentado em 1 e imprimirá o valor.
#! / bin / bashjogou fora 'Pressione' q 'para sair'
contar=0
enquanto:;Faz
leitura -n 1para<&1
E se [[ $ k= q]];então
printf ' nSaindo do programa n'
pausa
outro
((contar=$ count+1))
printf ' nIterar para$ countvezes n'
jogou fora 'Pressione' q 'para sair'
ser
feito
Execute o script.
$bashkey2.sh
Saída:
Exemplo # 3:
Crie um arquivo bash com o seguinte script que fará diferentes tipos de tarefas com base na tecla pressionada pelo usuário. Se o usuário pressionar '1', ele adicionará dois argumentos de linha de comando e imprimirá. Se o usuário pressionar '2', ele subtrairá dois argumentos de linha de comando e imprimirá. O script será executado continuamente até que o usuário pressione '3'.
#! / bin / bashv1=$ 1
v2=$ 2
enquanto:
Faz
jogou fora '1. Adição'
jogou fora '2. Subtração'
jogou fora '3. Desistir'
jogou fora -n 'Digite 1 ou 2 ou 3:'
leitura -n 1 -t quinzepara
printf ' n'
caso $ a no
1* ) jogou fora '$ v1+$ v2=$ (($ v1 + $ v2)) ';;
2* ) jogou fora '$ v1-$ v2=$ (($ v1- $ v2)) ';;
3* ) saída 0;;
* ) jogou fora 'Tente novamente.';;
esac
feito
Execute o script com dois valores de argumento numéricos.
$bashkey3.sh35 quinzeSaí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 teclas pressionadas pelo usuário até que a tecla ESC seja pressionada.
#! / bin / bashentrada do usuário=''
jogou fora 'Pressione a tecla ESC para sair'
# leu um único caractere
enquanto leitura -r -n1chave
Faz
# if input == tecla ESC
E se [[ $ chave== $'E' ]];
então
pausa;
ser
# Adicione a tecla à variável pressionada pelo usuário.
userinput + =$ chave
feito
printf ' nVocê digitou:$ userinput n'
Execute o script.
$bashkey4.shSaída:
Exemplo # 5:
Crie um arquivo bash com o código a seguir que aguardará a tecla ENTER para encerrar o script. O script terá um nome de servidor como entrada e tentará fazer o ping do servidor a cada 2 segundos. Se o comando ping obtiver a resposta do servidor, ele encerrará o script exibindo a saída, caso contrário, ele aguardará a resposta do usuário ou a tecla ENTER imprimindo a mensagem, Tentando conectar com….
#! / bin / bashjogou fora 'Digite o endereço do servidor que você deseja pingar'
leituraservidor
enquanto ! ping -c 1 -n -NO 2 $ server
Faz
jogou fora 'Tentando se conectar com$ server'
jogou fora 'Pressione [ENTER] para encerrar'
leitura -s -N 1 -t 1chave
E se [[ $ chave== $' x0a' ]];# if input == tecla ENTER
então
saída 0
ser
feito
printf '% s n' '$ serverestá correndo'
Execute o script.
$bashkey5.shSaída:
Conclusão:
Este tutorial mostra como você pode escrever o script bash de várias maneiras que irão esperar pela entrada do usuário para realizar qualquer tarefa específica ou encerrar o script. Espero que, depois de praticar os exemplos acima, você seja capaz de escrever o script de uma forma que possa esperar por qualquer pressionamento de tecla e realizar a tarefa específica com base na tecla pressionada pelo usuário.