Unix 如何在shell脚本中使用命令行参数查找三个数字中最大的一个?
请帮我执行这个。我是新学习unix的! 编写一个shell脚本,找出三个数字中最大的一个。假设输入作为命令行参数给出,如果没有给出这三个数字,则显示错误消息为“缺少命令行参数” 示例输入1: 102030 示例输出1: 30是最大的数字 示例输入1: 101010 示例输出1: 这三个数字都相等 示例输入1: 10101 示例输出1:Unix 如何在shell脚本中使用命令行参数查找三个数字中最大的一个?,unix,Unix,请帮我执行这个。我是新学习unix的! 编写一个shell脚本,找出三个数字中最大的一个。假设输入作为命令行参数给出,如果没有给出这三个数字,则显示错误消息为“缺少命令行参数” 示例输入1: 102030 示例输出1: 30是最大的数字 示例输入1: 101010 示例输出1: 这三个数字都相等 示例输入1: 10101 示例输出1: 我不知道哪个数字在awk中最大。仅适用于3个值,但易于概括: $ echo 20 20 20 | awk -v RS="[ \n]" ' { a[$0] }
我不知道哪个数字在awk中最大。仅适用于3个值,但易于概括:
$ echo 20 20 20 | awk -v RS="[ \n]" '
{ a[$0] } # hash all values to a
END {
for(i in a) { # loop all values in hash
if(m==""||i>m) # decide bigger
m=i
j++ } # count values in hash
switch(j) {
case "1":
print "All equal" # not sure if these make any sense:
break
case "2":
print "No figure" # if repeating values, there is still biggest value
break
case "3":
print m " biggest"
break
}
}'
All equal
请看一下:
如果[$-ne 3]
然后
缺少echo命令行参数
出口1
fi
如果[$1-相等于$2-相等于$1-相等于$3]
然后
这三个数字都相等
elif[$1-等价$2和$1-等价$3和$2-等价$3和$2-等价$1和$1-等价$2]]
然后
我不知道哪个数字最大
elif[$1-gt$2-a$1-gt$3]
然后
echo$1是最大的数字
elif[$2-gt$3-a$2-gt$1]
然后
echo$2是最大的数字
其他的
echo$3是最大的数字
fiStackOverflow不是我们为您做家庭作业的代码编写服务。尝试阅读一些教程并尝试解决方案-然后如果您仍然有问题,您可以发布您的问题,包括您尝试过的内容和您遇到的错误。 read a b c if [[ $a == 0 || $b == 0 || $c == 0 ]]; then echo "command line arguments are missing" elif [[ $a == $b && $b == $c ]]; then echo "All the three numbers are equal" elif [[ $a == $b && $b > $c || $b == $c && $c > $a || $a == $c && $a > $b ]]; then echo "I cannot figure out which number is biggest" else if [[ $a > $b && $a > $c ]]; then echo "$a is Biggest number" elif [[ $b > $a && $b > $c ]]; then echo "$b is Biggest number" else echo "$c is Biggest number" fi fi
if [ $# -lt 2 ]
then
echo "command line arguments are missing"
elif [ $1 -eq $2 ]&&[ $2 -eq $3 ]
then
echo "All the three are equal"
elif [ $1 -eq $2 ]||[ $1 -eq $3 ]
then
echo "I cannot figure out which number is biggest"
elif [ $1 -gt $2 ]
then
if [ $1 -gt $3 ]
then
echo "$1 is biggest number"
else
echo "$3 is biggest number"
fi
elif [ $2 -gt $3 ]
then
echo "$2 is biggest number"
else
echo "$3 is biggest number"
fi