编辑代码

#!/bin/bash

# 获取输入数字
read -p "请输入第一个数字: " num1

# 判断是否为数字,不为数字则报错
if ! [[ "$num1" =~ ^[0-9]+$ ]]; then
  echo "错误:数字非法输入!"
  exit 1
fi

read -p "请输入第二个数字: " num2

if ! [[ "$num2" =~ ^[0-9]+$ ]]; then
  echo "错误:数字非法输入!"
  exit 1
fi

# 获取输入运算符
read -p "请输入运算符(+、-、*、/): " operator

# 判断是否为运算符,不为运算符则报错
if [[ "$operator" != "+" && "$operator" != "-" && "$operator" != "*" && "$operator" != "/" ]]; then
  echo "错误:运算符非法输入!"
  exit 1
fi

# 若运算符为除法,检查除数是否为0,为0则报错
if [[ "$operator" == "/" && "$num2" -eq 0 ]]; then
  echo "错误:除数不能为0。"
  exit 1
fi

# 执行计算
result=0

case "$operator" in
  "+")
    result=$((num1 + num2))
    ;;
  "-")
    result=$((num1 - num2))
    ;;
  "*")
    result=$((num1 * num2))
    ;;
  "/")
    result=$((num1 / num2))
    ;;
esac

# 输出结果
echo "结果: $result"