如何将交互式Bash计算器脚本改造为非交互式版本?
将交互式Bash计算器改为非交互式模式
要改成非交互式模式,核心是通过命令行参数接收用户输入的两个数字,替代原来的read交互式输入。下面是具体修改方案和完整代码:
关键修改点
- 移除原脚本中用于交互式输入的
read循环、clear和多余的bash命令 - 通过
$1和$2直接获取用户执行脚本时传入的两个参数 - 添加参数合法性检查:确保用户传入了两个参数,且参数为有效数字
- 增加错误处理:比如除法时检测除数为零的情况,避免脚本异常退出
修改后的完整代码
#!/bin/bash # 检查参数数量是否正确 if [ $# -ne 2 ]; then echo "用法: $0 <数字1> <数字2>" echo "示例: $0 10 3" exit 1 fi # 验证参数是否为整数(支持正负) if ! [[ "$1" =~ ^-?[0-9]+$ ]] || ! [[ "$2" =~ ^-?[0-9]+$ ]]; then echo "错误: 请输入有效的整数" exit 1 fi arg1="$1" arg2="$2" echo "你输入的参数: arg1=$arg1 和 arg2=$arg2" # 计算各运算结果 let "addition=arg1+arg2" let "subtraction=arg1-arg2" let "multiplication=arg1*arg2" # 处理除法除数为零的情况 if [ "$arg2" -eq 0 ]; then division="错误: 除数不能为零" else let "division=arg1 / arg2" fi let "power=arg1**arg2" # 输出结果 echo -e "计算结果:\n" echo "$arg1+$arg2=$addition" echo "$arg1-$arg2=$subtraction" echo "$arg1*arg2=$multiplication" echo "$arg1/$arg2=$division" echo "$arg1^$arg2=$power"
使用方法
- 给脚本添加执行权限:
chmod +x calculator.sh - 直接传入两个数字运行脚本:
./calculator.sh 15 4
额外说明
- 脚本会自动检查参数数量和有效性,如果用户输入错误会给出清晰提示
- 针对除法增加了除数为零的判断,避免脚本崩溃
- 支持正负整数的运算,幂运算使用Bash原生的
**运算符实现
内容的提问来源于stack exchange,提问作者Joshua
相关产品推荐
相关产品推荐

