admin管理员组文章数量:1355694
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 ']'
版权声明:本文标题:if statement - Shell scripting: effect of 'clear' command on conditional control structure - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1743988938a2571778.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论