A mensagem de erro sugere que você não está realmente executando o script usando bash
.
Torne o script executável e adicione uma #!
-line adequada na primeira linha do script, por exemplo,
#!/bin/bash
Ou execute o script com bash
explicitamente:
$ bash script.sh
Você deve tratar sh
e bash
como implementando idiomas separados e usar o intérprete correto para o script que está escrevendo. Nesse caso, você está usando read
com a opção -u
. Esta é originalmente uma extensão ksh
da especificação read
padrão e também é implementada em bash
e zsh
. Portanto, você precisa executar o script com bash
, zsh
ou ksh
.
Como saber quando usar sh
e quando usar bash
ou algum outro shell? É simples, você aprende a maneira como o sh
funciona e que outros recursos outros shells adicionam.