当然这是一个简单的 - 仍在学习我的 sh 脚本。我有:-
if [ $3 < 480 ]; then
blah blah command
else
blah blah command2
fi
$3 是一个传递变量,也是一个整数。但是,当此脚本运行时,它会报告:-
line 20: 480: No such file or directory
使困惑。
最佳答案
请使用 [ "$3" -lt 480 ]
否则它将被视为括号内的输入重定向。这就是您收到错误的原因: 480: No such file or directory
。
要查看可用的替代方案:
[ "$3" -lt 480 ]
-- 数值比较,兼容所有 POSIX shell [ "$3" \< 480 ]
-- 字符串比较(数字通常错误!),兼容所有 POSIX shell [[ $3 < 480 ]]
-- 字符串比较(数字通常是错误的!),只有 bash 和 ksh (( $3 < 480 ))
-- 数值比较,仅 bash 和 ksh (( var < 480 ))
-- 数值比较,仅限 bash 和 ksh,其中 $var
是一个包含数字 检查 http://www.gnu.org/software/bash/manual/bashref.html#Bash-Conditional-Expressions 以了解更多信息。
关于bash - if 语句中的小于运算符 '<' 导致 'No such file or directory',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7119130/