Bash - Como faço para "Pressionar qualquer tecla para continuar" [duplicado]

122

Estou fazendo um script para instalar o meu tema, depois que ele terminar de instalar ele aparecerá o changelog e haverá "Pressione qualquer tecla para continuar" para que depois que os usuários lerem o changelog então pressione qualquer tecla para continuar

    
por superquanganh 05.07.2016 / 08:42

3 respostas

193

Você pode usar o comando read :

read -p "Press enter to continue"

Como mencionado nos comentários acima, este comando realmente requer que o usuário pressione enter ; uma solução que funcione com qualquer chave seria:

read -n 1 -s -r -p "Press any key to continue"

Explicação de Rayne e wchargin

-n define a contagem de caracteres necessária para parar de ler

-s oculta a entrada do usuário

-r faz com que a string seja interpretada como "raw" (sem considerar escapes de barra invertida)

    
por 05.07.2016 / 08:48
17

Como @cas escreveu em um comentário, você deve usar less para isso. Se o changelog for mais de uma página, você realmente quer um pager de qualquer maneira.

Você normalmente deseja consultar a variável de ambiente PAGER em vez de apenas chamar less :

${PAGER:-less} changelog

usará $PAGER se estiver definido e less caso contrário.

    
por 05.07.2016 / 11:25
5
read -rsn1 -p"Press any key to continue";echo

Ou, se você realmente precisar da variável REPLY :

read -rsn1 -p"Press any key to continue" variable;echo

Substitua variable por um nome de variável que você não precisa.

    
por 06.07.2016 / 16:35

Tags