我刚开始使用Bash脚本编写,我似乎无法弄清楚这些参数的含义(-ne
和-n
)。他们是Bash参数还是自己创建的参数?
# Run as root
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "This must be run as root"
exit $E_NOTROOT
fi
if [ -n "S1" ]
then
答案 0 :(得分:2)
-ne
的助记符不等于&#39 ;;它对不等式的两个值进行算术比较。
-n
的助记符不是空的&#39 ;;它测试参数(在这种情况下为"$1"
)是否为空字符串。如果定义了$1
并且其值不是空字符串,则测试将为真。
有关详细信息,请参阅Bash conditional expressions。
test
命令(也称为[
)也支持其他数字比较运算符:-lt
(小于),-le
(小于或等于) ,-gt
(大于),-ge
(大于或等于),-eq
(相等)。 -z
运算符测试零长度字符串 - 但请注意,参数必须用双引号括起来([ -z "$variable" ]
),否则-z
没有参数可以测试。< / p>
还有许多其他测试操作员;这不是一个详尽的清单。
答案 1 :(得分:1)
来自man test
:
-n STRING
the length of STRING is nonzero
INTEGER1 -ne INTEGER2
INTEGER1 is not equal to INTEGER2