如何让Bash菜单程序选择选项后不退出
嘿,这问题我刚学Bash的时候也碰到过!核心就是给你的菜单套一个无限循环,这样执行完所选命令后,程序会回到循环开头重新显示菜单。我帮你修改了代码,还补全了选择逻辑,你看:
#!/bin/bash # 用无限循环包裹整个菜单逻辑 while true; do # 显示菜单 echo -e "\n MENU" echo " a. Current date and time" echo " b. Users logged in" echo " q. Quit the program" # 加个退出选项,不然没法正常结束脚本 # 读取用户的选择 read -p "Enter your choice: " choice # 根据选择执行对应操作 case $choice in a) date # 显示当前日期时间 ;; b) who # 显示已登录用户 ;; q) echo "Goodbye!" exit 0 # 退出脚本,结束循环 ;; *) echo "Invalid choice! Please enter a, b, or q." ;; esac done
简单解释下关键部分:
while true; do ... done:这是一个永远不会自动结束的循环(除非你主动退出),每次执行完里面的代码,都会回到开头重新运行,所以菜单会反复出现。read -p "..." choice:用来读取用户输入的选项,存到choice变量里。case语句:匹配用户的选择,执行对应的命令。每个分支用;;结束,执行完后会回到循环开头,重新显示菜单。- 特意加了
q选项让你可以正常退出程序,不然只能用Ctrl+C强制中断,体验不太好。
你可以把其他选项(比如你写的...)按照这个格式补进去就行啦!
内容的提问来源于stack exchange,提问作者yes indeed
相关产品推荐
相关产品推荐

