我有这个 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
改用 。