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

BASH脚本菜单执行操作后echo输出不显示问题求助

问题原因与解决方案

嗨,我来帮你搞清楚为什么你的echo内容看不到~

问题根源

你的脚本里while true循环的第一行就是clear命令——当你完成减法、除法这些操作后,脚本会立刻回到循环开头,执行clear把刚才的输出给清空了,所以你根本来不及看到echo的内容。而加exit的话,脚本直接终止,不会走回循环的clear步骤,所以输出能正常显示。

解决办法

我们只需要在每个有输出的case分支后面加一个暂停操作,让你看完输出后,手动触发回到菜单的步骤就行。最常用的是用read -p命令,提示用户按回车继续。

修改后的脚本如下:

#!/bin/bash
while true; do
    clear
    cat <<EOF
Please Select:
Option 1. Quit
Option 2. Display Options Again
Option 3. Subtraction
Option 4. Division
Option 5. Who am I?
EOF
    read -p "Enter selection [1-5] > "
    case "$REPLY" in
        1) break ;;
        2) ;;
        3) read -p "Enter the First Number: " a
           read -p "Enter the Second Number: " b
           echo "$a - $b = $(($a-$b))"
           read -p "Press Enter to return to menu..." ;; # 新增暂停
        4) printf "Enter the First Number: "
           read a
           printf "Enter the Second Number: "
           read b
           echo "$a / $b = $(($a/$b))"
           read -p "Press Enter to return to menu..." ;; # 新增暂停
        5) echo "My name is Michelle"
           read -p "Press Enter to return to menu..." ;; # 新增暂停
        *) echo "Invalid entry."
           read -p "Press Enter to return to menu..." ;; # 新增暂停
    esac
done
echo "Program terminated."

额外小提示

  • 如果你觉得每次按回车麻烦,也可以用sleep 3代替read,让脚本自动等待3秒后回到菜单,但read的交互体验会更好。
  • 注意除法操作里如果b是0的话会报错,你可以后续加个判断避免这种情况,但这是另一个小问题啦~

内容的提问来源于stack exchange,提问作者Alchino

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 18:14:06