【发布时间】:2019-06-03 15:30:35
【问题描述】:
我正在创建自己的 bash 脚本,但是当我退出第二个菜单时,代码不允许我再次进入第二个菜单。
我必须解释这个错误的唯一方法是,当我将 6 放回第一个而读取修复 6 时,是什么导致了问题的混淆? 但这没有意义,因为如果它修复了 6 会做 echo "
谁能告诉我为什么?
while [ "$myscript" != "6" ]
do
echo "Script Menu"
echo " 1 - Open"
echo " 2 - Download"
echo " 3 - Update && Upgrade"
echo " 6 - Exit"
echo "Choose Your Script: "
read myscript
case $myscript in
1)
while [ "$open" != "6" ]
do
clear
echo "Open Menu"
echo " 1 - Rythombox"
echo " 2 - Anaconda"
echo " 3 - VSCode"
echo " 4 - Terminal"
echo " 6 - <-----Back"
echo "Choose Your Open: "
read open
case $open in
1)
echo " Opening Rhythmbox"
gnome-terminal --tab -- "rhythmbox"
;;
6)
echo "<--- Back"
;;
*)
echo "Not a option!"
;;
esac
done
【问题讨论】:
-
添加一个shebang,然后将您的脚本粘贴到那里:shellcheck.net
-
从不完整的代码片段中很难判断,但问题是
$open与上次还是“6”?如果没有,请编辑您的脚本以创建问题的minimal, complete and verifiable example,这样人们就可以自己查看/尝试它,而不必费力地浏览您脚本中不相关的部分。