编写一个shell脚本来查找三个数字中的最大数字。假设输入是作为命令行参数给出的,如果没有给出这三个数字,则显示错误消息" 缺少命令行参数"。
我的剧本就在这里,但是我所有的错误都是平等且不相同的选择... plz hellpppp me ...
if [ $# -eq 3 ]; then
if [ $1 -eq $2 -eq $3 ]; then
echo "All numbers are equal"
elif [ $1 -eq $2 -ne $3 || $2 -eq $3 -ne $2 || $1 -eq $3 -ne $2 ]; then
echo "I can't figure out which number is greater"
elif [ $1 -gt $3 && $1 -gt $3 ]; then
echo "$1 is the biggest number"
elif [ $2 -gt $3 ]; then
echo "$2 is the biggest number"
else
echo "$3 is the biggest number"
fi
else
echo "command line args are missing"
fi
答案 0 :(得分:0)
观察:
-eq
语法不允许1 -eq 2 -eq 3
。运行它返回
一个“bash: [: too many arguments
”错误。 -ne
也是如此。||
应替换为-o
或] || [
。$1 -gt $3 && $1 -gt $3
。
$3
应为$2
。&&
应替换为] && [
或-a
。"I can't figure out which number is greater"
的测试和输出是不必要的。如果 A = B 且 B> C ,只需打印 A 。答案 1 :(得分:0)
您的两个主要问题是尝试链接fn:replace
(您需要使用两个单独的{"@context":"http://schema.org"}
命令)并尝试在{{1}内使用-eq
和[
(再次,使用单独的命令)。你的第二个案例没有意义;整数是有序的,所以如果三者不相等,那么将会有一个最大的值。您可以在||
检查中将&&
替换为[
,以便忽略任何其他参数。
与往常一样,您应该引用参数扩展,以避免意外的参数值破坏您的代码。
-eq
答案 2 :(得分:0)
尝试使用此脚本:
#!/bin/bash
if [ $# -eq 3 ]
then
if [ $1 -gt $2 ] && [ $1 -gt $3 ]
then
echo "$1 is Biggest number"
elif [ $2 -gt $1 ] && [ $2 -gt $3 ]
then
echo "$2 is Biggest number"
elif [ $3 -gt $1 ] && [ $3 -gt $1 ]
then
echo "$3 is Biggest number"
fi
else
echo "command line arguments are missing"
fi
答案 3 :(得分:0)
以下是正确答案:
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
答案 4 :(得分:0)
简洁明了的代码:
{{1}}
答案 5 :(得分:-1)
用于查找三个数字是否相等以及三个数字中的最大数
#!/bin/bash
echo ”enter 3 numbers”
read a
read b
read c
if [$a –eq $b –a $a –eq $c]
then
echo “3 number are equal”
elif [$a –gt $b –a $a –gt $c]
then
echo ”$a is the greatest number”
elif [$b –gt $c]
then
echo “$b is the greatest number”
else
echo “$c is the greatest number”
fi