在 ubuntu 上我运行以下脚本(为了测试目的,该脚本应该随机失败或成功):
if [ "$RANDOM" -gt 16384 ]; then
echo "Success!"
exit 0
else
echo "Failure!"
exit 1
fi
和
sh random.sh
但它失败了
random.sh: 1: [: Illegal number:
Failure!
问题的原因是什么?
在 ubuntu 上我运行以下脚本(为了测试目的,该脚本应该随机失败或成功):
if [ "$RANDOM" -gt 16384 ]; then
echo "Success!"
exit 0
else
echo "Failure!"
exit 1
fi
和
sh random.sh
但它失败了
random.sh: 1: [: Illegal number:
Failure!
问题的原因是什么?
变量是 bash 扩展,因此您必须使用而不是 来
$RANDOM
调用脚本。在 Ubuntu 上,通常链接到不支持这些扩展的更轻量级的shell。bash
sh
sh
dash
另请参阅sh 和 Bash 之间的区别
为了确保使用了正确的解释器,请在脚本中添加一个shebang :
并使其可执行:
用户现在可以简单地执行脚本,而无需指定正常运行所需的解释器: