linux中5. 请用Bash编写一个简单的计算器,提示用户输入两个正整数,计算它们的和并输出,然后继续提示用户输入两个正整数,直到用户输入’q’为止。如果用户输入的是负整数或者零,就提示用户重新输入,直到用户输入的是正整数为止。假设用户输入只可能是整数。
时间: 2023-08-31 15:20:57 浏览: 122
### 回答1:
以下是一个使用 Bash 编写的简单计算器的示例代码:
```
#!/bin/bash
# 定义计算两个数之和的函数
calculate_sum() {
# 获取第一个数的值
read -p "请输入第一个正整数:" num1
# 如果输入的不是正整数,则继续提示用户输入
while [[ $num1 -le 0 ]]; do
read -p "输入的不是正整数,请重新输入:" num1
done
# 获取第二个数的值
read -p "请输入第二个正整数:" num2
# 如果输入的不是正整数,则继续提示用户输入
while [[ $num2 -le 0 ]]; do
read -p "输入的不是正整数,请重新输入:" num2
done
# 计算两个数之和
sum=$((num1 + num2))
# 输出结果
echo "结果为:$sum"
}
# 不断提示用户输入两个数,直到用户输入’q’为止
while true; do
# 提示用户输入两个数
calculate_sum
# 提示用户是否继续
read -p "是否继续?输入’q’退出,输入其他字符继续:" choice
# 如果用户输入了’q’,则退出循环
if [[ $choice == "q" ]]; then
break
fi
done
```
该计算器的工作原理如下:
- 定义了一个名为 `calculate_sum` 的函数,
### 回答2:
以下是一个简单的Bash计算器的代码示例:
```shell
#!/bin/bash
while true; do
read -p "请输入第一个正整数(输入'q'退出):" num1
# 检查输入是否为'q',如果是则退出循环
if [[ "$num1" == "q" ]]; then
break
fi
# 检查输入是否为负数或零,如果是则重新提示输入
if [[ $num1 -le 0 ]]; then
echo "请输入正整数!"
continue
fi
read -p "请输入第二个正整数(输入'q'退出):" num2
# 检查输入是否为'q',如果是则退出循环
if [[ "$num2" == "q" ]]; then
break
fi
# 检查输入是否为负数或零,如果是则重新提示输入
if [[ $num2 -le 0 ]]; then
echo "请输入正整数!"
continue
fi
# 计算并输出两个正整数的和
sum=$((num1 + num2))
echo "它们的和为:$sum"
done
echo "谢谢使用!"
```
这段代码会提示用户输入两个正整数(或输入'q'退出),并计算它们的和并输出。如果用户输入的是负整数或者零,会重新提示用户输入,直到用户输入的是正整数为止。循环会一直进行,直到用户输入'q'退出。最后,会输出一条感谢使用的消息。
### 回答3:
可以使用以下Bash脚本编写一个简单的计算器:
```bash
#!/bin/bash
while true; do
read -p "请输入两个正整数(以空格分隔)或输入'q'退出: " input
# 如果用户输入是'q',则退出循环
if [[ $input == "q" ]]; then
echo "退出计算器"
break
fi
# 检查用户输入是否为正整数
IFS=' ' read -ra numbers <<< "$input"
if [[ ${#numbers[@]} -lt 2 ]] || [[ ! ${numbers[0]} =~ ^[1-9][0-9]*$ ]] || [[ ! ${numbers[1]} =~ ^[1-9][0-9]*$ ]]; then
echo "请输入两个正整数!"
continue
fi
# 计算两个整数的和并输出
sum=$((${numbers[0]} + ${numbers[1]}))
echo "两个整数的和为:$sum"
done
```
使用以上脚本,用户会被提示输入两个正整数,如果输入的是负整数或零,会提示用户重新输入,直到输入的是正整数为止。当用户输入'q'时,会退出计算器。否则,脚本会计算两个整数的和,并输出结果。
阅读全文
相关推荐















