编写shell脚本,实现一个简单的加减乘除计算器
时间: 2023-07-13 13:26:43 浏览: 184
好的,以下是一个简单的加减乘除计算器的shell脚本:
```
#!/bin/bash
echo "请输入两个数字:"
read a
read b
echo "请选择运算符(+、-、*、/):"
read operator
case $operator in
+)
result=`echo "$a + $b" | bc`
;;
-)
result=`echo "$a - $b" | bc`
;;
\*)
result=`echo "$a * $b" | bc`
;;
/)
result=`echo "scale=2; $a / $b" | bc`
;;
*)
echo "输入的运算符不正确"
exit 1
;;
esac
echo "结果为:$result"
```
通过`read`命令获取用户输入的两个数字和运算符,然后使用`case`语句判断运算符,分别进行加、减、乘、除运算,并使用`bc`命令计算结果。其中,除法运算使用了`scale`选项设置小数点后保留的位数为2位。
注意:这个脚本仅支持整数和浮点数的加减乘除运算,不支持负数、分数和取余运算等。如需更加完善的计算器,需要进一步扩展脚本的功能。
相关问题
编写一个shell脚本:实现一个加减乘除计算器
编写一个简单的Shell脚本来实现加减乘除的四则运算,你可以创建一个名为`calculator.sh`的文件,并添加以下内容:
```bash
#!/bin/bash
# 函数声明,接收用户输入的操作数和运算符
calculate() {
case $1 in
+) result=$(( $2 + $3 ));;
-) result=$(( $2 - $3 ));;
*) echo "Invalid operator"; exit 1;;
esac
echo "The result is: $result"
}
# 提示用户输入第一个数字
echo "Enter first number:"
read num1
# 提示用户输入运算符
echo "Enter an operator (+, -, *, /):"
read op
# 提示用户输入第二个数字
echo "Enter second number:"
read num2
# 调用函数计算结果
calculate $op $num1 $num2
# 结束提示
echo "Calculator script finished."
```
保存这个脚本后,在终端通过`chmod +x calculator.sh`给它执行权限,然后运行`./calculator.sh`即可开始使用。注意,此脚本没有处理除数为零的情况,如果需要完整功能,应在除法操作中加入错误检查。
编写一个shell脚本:实现一个加减乘除计算器。
编写一个简单的Shell脚本来实现基本的加减乘除计算器,可以使用`read`命令获取用户输入,然后通过条件判断执行相应的运算。下面是一个基础的示例:
```bash
#!/bin/bash
# 定义函数来执行加法
function add {
echo "请输入两个数相加:"
read num1 num2
result=$((num1 + num2))
echo "结果是: $result"
}
# 定义减法函数
function subtract {
echo "请输入两个数相减:"
read num1 num2
result=$((num1 - num2))
echo "结果是: $result"
}
# 定义乘法函数
function multiply {
echo "请输入两个数相乘:"
read num1 num2
result=$((num1 * num2))
echo "结果是: $result"
}
# 定义除法函数,需要处理除数为0的情况
function divide {
echo "请输入两个数相除 (注意:除数不能为0):"
read num1 num2
if [ "$num2" -eq "0" ]; then
echo "错误: 除数不能为0."
else
result=$((num1 / num2))
echo "结果是: $result"
fi
}
# 提示用户选择操作
echo "请选择运算:"
echo "1. 加法"
echo "2. 减法"
echo "3. 乘法"
echo "4. 除法"
read choice
case $choice in
1)
add
;;
2)
subtract
;;
3)
multiply
;;
4)
divide
;;
*)
echo "无效的选择,请重新运行并选择正确的数字."
;;
esac
# 结束脚本
echo "程序结束."
阅读全文