编写一个 shell 脚本,实现功能: 1)传递一个字符给给脚本,当字符为J/C时,该脚本用于计算累加/除法。 2)若计算累加,提示"input a number: ",让用户输入一个整数,并输出计算结果。 3) 若计算除法,提示"input two numbers: ",让用户输入两个整数。 当除数为0时,用户需重新输入两个整数进行计算,直至输入正确。计算除法并输出计算结果。
时间: 2024-02-09 17:13:37 浏览: 63
好的,这是一个增强版的实现:
```bash
#!/bin/bash
if [ "$1" = "J" ]; then
# 累加
sum=0
while true; do
read -p "input a number: " num
if [[ "$num" =~ ^[0-9]+$ ]]; then
sum=$((sum + num))
read -p "continue? (y/n): " choice
if [ "$choice" = "n" ]; then
break
fi
else
echo "输入不是整数,请重新输入"
fi
done
echo "累加结果为:$sum"
elif [ "$1" = "C" ]; then
# 除法
while true; do
read -p "input two numbers: " dividend divisor
if [[ "$dividend" =~ ^[0-9]+$ ]] && [[ "$divisor" =~ ^[0-9]+$ ]] && [ "$divisor" -ne 0 ]; then
result=$(echo "scale=2; $dividend / $divisor" | bc)
echo "除法结果为:$result"
break
else
echo "输入不合法,请重新输入"
fi
done
else
echo "字符不是J或C"
exit 1
fi
```
脚本的第二个要求是让用户输入整数进行累加计算,我们使用 `read` 命令来实现。同时,我们加入了一个循环,让用户可以多次输入并计算,直到用户选择退出。第三个要求是让用户输入两个整数进行除法计算,当除数为0时,要求用户重新输入,直到输入正确。我们同样使用 `read` 命令实现,并加入了一个循环来实现重新输入的逻辑。
阅读全文