Bash escolha a opção sem pressionar enter

2

eu tenho um script como este:

#!/bin/bash

clear

echo -n "Choose an option:
1) Encrypt
2) Decrypt
3) Quit
-> "

read opzione

if [ "$opzione" == "1" ]; then

echo -n "Drag here the file to encrypt: "
read chiaro
...
fi

Eu gostaria de ter o script para aceitar automaticamente o número depois de inseri-lo. É possível?

Obrigado

    
por Matteo 13.09.2015 / 19:34

1 resposta

4

Você pode usar a opção -n chars : de help read

  -n nchars return after reading NCHARS characters rather than waiting
        for a newline, but honor a delimiter if fewer than NCHARS
        characters are read before the delimiter

Alternativamente, em versões mais recentes do bash, você poderia substituir toda a construção por uma instrução select , que implementa a lista de seleção para você

$ select opzione in "Encrypt" "Decrypt" "Quit"; do echo "You chose $REPLY"; done
1) Encrypt
2) Decrypt
3) Quit
#? 1
You chose 1
#? ^C
    
por 13.09.2015 / 19:44