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

在Bash中实现加减乘除基础运算的脚本问题求助

Bash四则运算脚本修复方案

你现有加法逻辑存在两处语法错误:

  • 算术扩展语法$((...))中$和双括号之间不能留有空格
  • 不应该混用expr命令和原生算术扩展语法,二者选其一即可,原生$((...))不需要额外调用外部命令,运行效率更高

完整可运行脚本

#!/bin/bash
echo "请输入两个数字:"
read -p "第一个数字: " a
read -p "第二个数字: " b

# 校验输入是否为合法数字(支持整数和小数)
if ! [[ $a =~ ^[0-9]+(\.[0-9]+)?$ && $b =~ ^[0-9]+(\.[0-9]+)?$ ]]; then
    echo "错误:请输入合法数字"
    exit 1
fi

select operation in 加法 减法 乘法 除法
do
    case $operation in
        "加法")
            res=$(echo "$a + $b" | bc)
            echo "加法运算结果= $res"
            break
            ;;
        "减法")
            res=$(echo "$a - $b" | bc)
            echo "减法运算结果= $res"
            break
            ;;
        "乘法")
            res=$(echo "$a * $b" | bc)
            echo "乘法运算结果= $res"
            break
            ;;
        "除法")
            if [ $(echo "$b == 0" | bc) -eq 1 ]; then
                echo "错误:除数不能为0"
                exit 1
            fi
            # scale参数控制保留小数位数,可按需修改
            res=$(echo "scale=2; $a / $b" | bc)
            echo "除法运算结果= $res"
            break
            ;;
        *)
            echo "请选择1-4之间的有效操作序号"
            ;;
    esac
done

补充说明

  • 如果仅需要处理整数运算,可以直接用$((a + b))格式,不需要调用bc命令
  • 脚本已增加输入合法性校验、除数为0异常处理逻辑,避免运行时报错

内容的提问来源于stack exchange,提问作者Mohamed ali Lemkecher

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:27:01