Os erros Syntax error: "do" unexpected
ou Syntax error: "done" unexpected
são quase certamente porque você está tentando executar seu script digitando
sh yourscript
que substitui a diretiva #!/bin/bash
e força o script a ser executado no interpretador / bin / sh - que, por padrão, é um link simbólico para / bin / dash, que não suporta a sintaxe select
. Você deve apenas tornar o script executável
chmod +x yourscript
e, em seguida, invoque-o como
./yourscript
O outro problema óbvio é que sua lista de opções usa letras minúsculas option1 option2 option3
, mas sua instrução case testa por Option1
Option2
Option3
- deve ser
#/bin/bash
PS3='Please enter your choice '
select opt in option1 option2 option3 quit; do
case "$opt" in
"option1")
echo "you chose choice 1" ;;
"option2")
echo "you chose choice 2" ;;
"option3")
echo "you chose choice 3" ;;
"quit")
break ;;
*) echo invalid option ;;
esac
done