ubuntu中请用Bash编写一个简单的计算器,提示用户输入两个正整数,计算它们的和并输出,然后继续提示用户输入两个正整数,直到用户输入’q’为止。如果用户输入的是负整数或者零,就提示用户重新输入,直到用户输入的是正整数为止。
时间: 2023-02-13 18:00:50 浏览: 40
在 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'为止。
linux中5. 请用Bash编写一个简单的计算器,提示用户输入两个正整数,计算它们的和并输出,然后继续提示用户输入两个正整数,直到用户输入’q’为止。如果用户输入的是负整数或者零,就提示用户重新输入,直到用户输入的是正整数为止。假设用户输入只可能是整数。
### 回答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'时,会退出计算器。否则,脚本会计算两个整数的和,并输出结果。