You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:52:57