if语句中的bourne shell expr

时间:2014-07-23 18:57:49

标签: sh

我可以在if语句中使用expr命令吗?我看到以下小脚本的非常奇怪的行为:

if (`expr $1 > $2`)
then
    echo $1
else
    echo $2
fi

按预期用于>和&lt ;,但是给出了语法错误或“找不到命令”=,或者< =,> =以及其他所有内容。

我做错了吗?

我知道我可以使用[]或测试。

1 个答案:

答案 0 :(得分:1)

是的,但您不必使用命令替换。您只需将输出重定向到/dev/null并检查退出代码即可。您还应引用重定向字符等特殊字符。

if expr "$1" '>' "$2" >/dev/null
then
    echo "$1"
else
    echo "$2"
fi