ubuntu中请用Bash编写一个简单的计算器,提示用户输入两个正整数,计算它们的和并输出,然后继续提示用户输入两个正整数,直到用户输入’q’为止。如果用户输入的是负整数或者零,就提示用户重新输入,直到用户输入的是正整数为止。
时间: 2023-02-13 13:54:41 浏览: 103
#!/bin/bash
while true; do
read -p "请输入第一个正整数: " num1
if [[ $num1 =~ ^[0-9]+$ ]]; then
if [[ $num1 -gt 0 ]]; then
break
else
echo "请输入正整数!"
fi
else
echo "请输入正整数!"
fi
done
while true; do
read -p "请输入第二个正整数: " num2
if [[ $num2 =~ ^[0-9]+$ ]]; then
if [[ $num2 -gt 0 ]]; then
break
else
echo "请输入正整数!"
fi
else
echo "请输入正整数!"
fi
done
result=$((num1 + num2))
echo "$num1 + $num2 = $result"
while true; do
read -p "是否继续(y/n)? " choice
if [[ $choice == "y" || $choice == "Y" ]]; then
continue
elif [[ $choice == "n" || $choice == "N" ]]; then
break
else
echo "请输入y或n!"
fi
done
相关问题
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'为止。
阅读全文