I don't know why, but only the '0' option works, unless the 'clear' command is removed or commented out. See the script:
NUMERO=-1
while [ $NUMERO -ne 0 ]; do
clear
echo "------ M E N U ------"
echo "1 - Primeira opção"
echo "2 - Segunda opção"
echo "3 - Terceira opção"
echo "0 - Sair"
while true; do
read -p "Opção: " NUMERO
[[ -n "$NUMERO" ]] && break
done
if [ $NUMERO == 1 ]; then
echo "Você escolheu a opção $NUMERO"
elif [ $NUMERO == 2 ]; then
echo "Você escolheu a opção $NUMERO"
else
echo "Você escolheu a opção $NUMERO"
fi
done
After adding 'exec 3>trace.log; BASH_XTRACEFD=3; set -x' to the beginning of the script, I got the following content in the trace.log file:
+ NUMERO=-1
+ '[' -1 -ne 0 ']'
+ clear
+ echo '------ M E N U ------'
+ echo '1 - Primeira opção'
+ echo '2 - Segunda opção'
+ echo '3 - Terceira opção'
+ echo '0 - Sair'
+ true
+ read -p 'Opção: ' NUMERO
+ [[ -n 1 ]]
+ break
+ '[' 1 == 1 ']'
+ echo 'Você escolheu a opção 1'
+ '[' 1 -ne 0 ']'
+ clear
+ echo '------ M E N U ------'
+ echo '1 - Primeira opção'
+ echo '2 - Segunda opção'
+ echo '3 - Terceira opção'
+ echo '0 - Sair'
+ true
+ read -p 'Opção: ' NUMERO
+ [[ -n 0 ]]
+ break
+ '[' 0 == 1 ']'
+ '[' 0 == 2 ']'
+ echo 'Você escolheu a opção 0'
+ '[' 0 -ne 0 ']'