Bash测试命令操作符

时间:2014-04-22 06:16:35

标签: bash arguments

我刚开始使用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

2 个答案:

答案 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