Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 如何在shell脚本中使用命令行参数查找三个数字中最大的一个?_Unix - Fatal编程技术网

Unix 如何在shell脚本中使用命令行参数查找三个数字中最大的一个?

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] }

请帮我执行这个。我是新学习unix的! 编写一个shell脚本,找出三个数字中最大的一个。假设输入作为命令行参数给出,如果没有给出这三个数字,则显示错误消息为“缺少命令行参数”

示例输入1:

102030

示例输出1:

30是最大的数字

示例输入1:

101010

示例输出1:

这三个数字都相等

示例输入1:

10101

示例输出1:


我不知道哪个数字在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是最大的数字
fi

StackOverflow不是我们为您做家庭作业的代码编写服务。尝试阅读一些教程并尝试解决方案-然后如果您仍然有问题,您可以发布您的问题,包括您尝试过的内容和您遇到的错误。 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