“ler” uma única tecla dá um erro

4

Este script simples deve ler uma letra:

#!/bin/bash
read -n 1 key
echo $key

Mas dá o seguinte erro

read: Illegal option -n

Executado manualmente a mão read -n 1 key funciona.

    
por Davoud Taghawi-Nejad 27.10.2012 / 11:43

1 resposta

8

A opção -n para read é uma extensão bash, não encontrada em algumas outras shells. Se você obteve o erro read: Illegal option -n , significa que você não executou o script no bash. É mais provável que você tenha executado o script em /bin/sh e /bin/sh não seja bash, mas traço (a mensagem de erro é o que um traço produz).

Para executar um script no bash, inicie-o com uma linha shebang #!/bin/bash , faça o script executável do arquivo de script e chamá-lo pelo nome. Como você tem uma linha shebang, o problema pode ser que você executou . /path/to/script em vez de /path/to/script de outro script em execução em /bin/sh .

    
por 28.10.2012 / 02:18

Tags