【发布时间】:2014-08-03 00:46:07
【问题描述】:
我正在尝试执行以下操作:
function main_menu
{
option=0
until [ "$option" = "4" ]; do
echo " 1.) Add user"
echo " 2.) Remove user"
echo " 3.) Update user"
echo " 4.) Quit"
echo -n "Enter choice: "
read option
echo ""
case $option in
1 ) add_user ; press_enter ;;
2 ) remove_user ; press_enter ;;
3 ) update_user ; press_enter ;;
4 ) exit;;
* ) tput setf 4;echo "Please enter 1, 2, 3, or 4";tput setf 4;
esac
done
}
在switch case中(do while option is not 4)。第三个选项将显示另一个带有switch case的子菜单,如下所示:
function update_user
{
option=0
until [ "$option" = "3"]; do
echo " 1.) Update username"
echo " 2.) Update password"
echo " 3.) Return to menu"
echo -n "Enter choice: "
read option
echo ""
case $option in
1 ) update_username; press_enter ;;
2 ) update_password; press_enter ;;
3 ) main_menu; press_enter ;;
4 ) exit;;
* ) tput setf 3;echo "Please enter 1, 2 or 3";tput setf 3;
esac
done
}
第三个选项回到主菜单,但是当我尝试退出时,子菜单不断出现。
谁能给我更好的建议?
【问题讨论】:
-
一些代码可能有用
-
@KonstantinV.Salikhov 更新代码
-
你可以使用 bash select builtin tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_06.html
-
@KonstantinV.Salikhov 我会试试看。不过还有其他方法吗?
-
首先清理您的代码以使其完全运行,然后发布。正如所写,您的子菜单永远不会被调用。