ubuntu中请用Bash编写一个简单的计算器,提示用户输入两个正整数,计算它们的和并输出,然后继续提示用户输入两个正整数,直到用户输入’q’为止。如果用户输入的是负整数或者零,就提示用户重新输入,直到用户输入的是正整数为止。
时间: 2023-02-13 07:00:50 浏览: 97
在 Bash 中,可以使用以下代码实现简单的计算器功能:
```
while true; do
# 提示用户输入两个正整数
read -p "请输入第一个正整数: " num1
read -p "请输入第二个正整数: " num2
# 判断输入是否合法(是否为正整数)
if ! [[ $num1 =~ ^[1-9][0-9]*$ ]] || ! [[ $num2 =~ ^[1-9][0-9]*$ ]]; then
echo "输入无效,请重新输入两个正整数。"
continue
fi
# 计算并输出结果
result=$((num1 + num2))
echo "结果为: $result"
# 提示用户是否继续
read -p "是否继续?(输入 q 退出): " user_input
if [[ $user_input == "q" ]]; then
break
fi
done
```
上述代码的基本思路是:
1. 使用 `read` 命令提示用户输入两个正整数。
2. 使用 `if` 语句判断用户输入的数字是否合法(是否为正整数)。
3. 如果输入不合法,则提示用户重新输入两个正整数。
4. 如果输入合法,则计算并输出两个数的和。
5. 提示用户是否继续计算。如果用户输入 q,则退出循环。否则继续循环。
相关问题
ubuntu 中 请用Bash编写一个简单的计算器,提示用户输入两个正整数,计算它们的和并输出,然后继续提示用户输入两个正整数,直到用户输入’q’为止。如果用户输入的是负整数或者零,就提示用户重新输入,直到用户输入的是正整数为止。
### 回答1:
以下是在 Bash 中编写的简单计算器的示例代码:
```
while true; do
# 提示用户输入两个正整数
read -p "请输入第一个正整数: " num1
read -p "请输入第二个正整数: " num2
# 如果用户输入的是负整数或者零,提示用户重新输入
if [[ $num1 -le 0 || $num2 -le 0 ]]; then
echo "您输入的不是正整数,请重新输入!"
continue
fi
# 计算两个正整数的和并输出
result=$((num1 + num2))
echo "它们的和是: $result"
# 如果用户输入了 'q',退出循环
read -p "如果要退出,请输入 'q': " choice
if [[ $choice == "q" ]]; then
break
fi
done
```
上面的代码会提示用户输入两个正整数,如果用户输入的不是正整数,就会提示用户重新输入,然后计算两个正整数的和并输出。接下来会再次提示用户输入两个正整数,直到用户输入 'q' 为止。
希望这能帮到你。
### 回答2:
可以使用以下 bash 脚本实现一个简单的计算器:
```bash
#!/bin/bash
while true; do
# 提示用户输入两个正整数
read -p "请输入两个正整数,用空格分隔(输入 'q' 退出):" input
# 检查用户输入是否为 'q',如果是则退出循环
if [[ $input == "q" ]]; then
break
fi
# 将用户输入的两个数字分别存储到变量中
num1=$(echo $input | cut -d ' ' -f 1)
num2=$(echo $input | cut -d ' ' -f 2)
# 检查用户输入的数字是否为正整数,如果不是则提示重新输入
if [[ ! $num1 =~ ^[1-9][0-9]*$ || ! $num2 =~ ^[1-9][0-9]*$ ]]; then
echo "输入的数字必须为正整数,请重新输入"
continue
fi
# 计算两个数字的和并输出结果
sum=$(($num1 + $num2))
echo "两个数字的和为:$sum"
done
```
使用该脚本,用户可以多次输入两个正整数进行求和操作,直到输入 "q" 时退出循环。如果用户输入的是负整数或零,则会提示用户重新输入,直到输入的是正整数为止。
### 回答3:
可以使用以下Bash脚本来实现一个简单的计算器:
```shell
#!/bin/bash
while true; do
printf "请输入两个正整数(输入q退出): "
read num1
if [[ $num1 == q ]]; then
break
fi
while [[ $num1 -le 0 ]]; do
printf "输入的不是正整数,请重新输入: "
read num1
done
read num2
if [[ $num2 == q ]]; then
break
fi
while [[ $num2 -le 0 ]]; do
printf "输入的不是正整数,请重新输入: "
read num2
done
sum=$((num1 + num2))
echo "两个数的和是: $sum"
done
```
运行这个脚本后,会提示用户输入两个正整数,然后计算它们的和并输出。如果用户输入'q',脚本将退出。如果用户输入的是负整数或者零,脚本会提示用户重新输入,直到输入的是正整数为止。脚本会一直循环执行,直到用户输入'q'为止。
阅读全文