脚本无法解析双括号的算术比较

脚本无法解析双括号的算术比较

我有这个 shell 脚本。

#!/bin/bash
    
X=1200

if (( $X < 1000 )); then
    echo "true"

else
    echo "false"
fi
exit

执行后我收到这些错误。

$ sh ./my-script.sh
./my-script.sh: 5: ./my-script.sh: cannot open 1000: No such file
./my-script.sh: 5: ./my-script.sh: 1200: not found
false

解析器无法识别算术括号,并尝试将文件“1000”加载到变量 $X 中。我做错了什么?

我知道您可以使用替代格式if [ "$X" -lt 1000 ]; then,但我更喜欢双括号。这不是您在中执行的方式吗/bin/bash?互联网上很多地方都建议您这样做。

答案1

((...))sh在您尝试用 来运行脚本的 shell中不可用sh ./my-script.sh,请bash ./my-script.sh改用 。

相关内容