1

我有这个代码。但我无法得到我需要的结果。我在 bash 中比较变量。如果我从网页获得的数字大于 40,我想要一个是的。

var2=40
maj=$(curl $1)
var1=$(echo "$maj" | grep "[0-9]" | awk '{print $3}')
echo $var1
if [[ "$var1" > "$var2" ]]; then
echo "yes"
else
echo "no"
fi

1 美元可能是:

http://pastebin.com/raw.php?i=heH8s5yy
http://pastebin.com/raw.php?i=k5dkKUu1
http://pastebin.com/raw.php?i=59V0eJmz

问题是当我这样做的时候

./test.sh http://pastebin.com/raw.php?i=k5dkKUu1

我明白了

并且 5 小于 40

4

1 回答 1

5

这是因为>双括号内的符号进行[[ ... ]]字典比较。您需要使用-gt运算符来比较数值,如下所示:

[[ $var1 -gt "$var2" ]]

最好在双括号内进行数字运算,像这样

if (( var1 > var2 ))
于 2013-08-10T19:28:57.393 回答