我已经在我的代码中运行了一段时间,并且似乎找不到这个失败的原因,因为它在第10行显然失败了,这显然是if语句,但是它正确地找到了线。
#!/bin/bash
#a script that reads the largest number from a file
file="$1"
largest=""
while IFS= read -r line
do
if("$line" > "$largest")
then
"$largest"="$line"
fi
done <"$file"
echo "$largest"
答案 0 :(得分:5)
这是不正确的:
if("$line" > "$largest")
then
"$largest"="$line"
fi
更改为:
if [ "$line" -gt "$largest" ]
then
largest="$line"
fi
首先,正如评论中指出的那样,>
是一个重定向运算符,而bash正在尝试运行“$ line”命令。括号不是测试运算符,方括号是。
最后,"$largest"
作为作业的目标是不正确的。 $
告诉bash提供变量的值,我们要分配给largest
,而不是largest
的值。