bash - 编写一个 shell 脚本来找出三个数字中最大的一个。获取用户输入并显示结果
问题描述
编写一个 shell 脚本来找出三个数字中最大的一个。获取用户输入并显示结果。
样本输入 1:
10 20 30
样本输出 1:
30 是最大的数字
样本输入 2:
10 10 10
样本输出 2:
所有三个数字都相等
样本输入 3:
10 10 1
样本输出 3:
我不知道哪个数字最大
巴什代码:
#!bin/bash
read a b c
if [ $a -eq $b -a $a -eq $c ]; then
echo "All the three numbers are equal"
elif [[ $a -eq $b || $b -eq $c || $c -eq $a ]]; then
echo "I cannot figure out which number is largest"
else
if [ $a -gt $b -a $a -gt $c ]; then
echo "$a is biggest number"
elif [ $b -gt $a -a $b -gt $c ]; then
echo "$b is biggest number"
elif [ $c -gt $a -a $c -gt $b ]; then
echo "$c is biggest number"
fi
fi
要通过的测试用例:要通过三个测试用例,但我只能通过一个测试用例。
评估代码时的实际结果:
注意:即使我得到了预期结果的实际结果,但我能够通过唯一的一个测试用例(不同的值),而剩下的两个测试用例(相等的值和唯一的值)都失败了。我什至无法发现错误。
当我以这些方式尝试时,我遇到了一些错误:
解决方案
我有同样的问题。进行了一些故障排除。
read v1
read v2
read v3
if [[ $v1 == $v2 && $v1 == $v3 ]]; then
echo "All the three numbers are equal"
elif [[ $v1 == $v2 || $v2 == $v3 || $v3 == $v1 ]]; then
echo "I cannot figure out which number is largest"
else
if [[ $v1 > $v2 && $v1 > $v3 ]]; then
echo "$v1 is largest number"
elif [[ $v2 > $v3 && $v2 > $v1 ]]; then
echo "$v2 is largest number"
elif [[ $v3 > $v1 && $v3 > $v2 ]]; then
echo "$v3 is largest number"
fi
fi
推荐阅读
- jpa - 调用 findby Jpa 方法时 @postload 不起作用
- mdx - MDX中动态年份过滤器的问题
- python - 创建多个字典,其中部分文件名作为键,文件内容作为值
- swift - 具有关联类型的协议继承
- oracle - ORA-01747: Nifi PutDatabaseRecord 上的 user.table.column 无效
- excel - 带有空白单元格和 IF/AND 语句的 Excel
- c# - 在剃须刀 asp.net 核心中加载大 svg
- python - 蛇头不动
- docker - 限制循环执行的 docker 容器
- xml - Kotlin 语言中是否有可用的函数,它获取带有 XML 的字符串并返回 DOM?