壳脚本-x标志意思

时间:2012-06-15 22:08:58

标签: shell if-statement sh flags

我有一个#!/ bin / sh脚本,其中包含以下行:

if [ ! -x "$TEST_SLAPD" ]

$TEST_SLAPD是.bat文件的完整路径。

我想知道-x语句在if语句的上下文中意味着什么?

2 个答案:

答案 0 :(得分:6)

if只检查其后的命令结果。 [不是(至少不总是)运算符,它是一个名为'test'的小实用程序。

从其文档:

-x file
                             True if file exists and is  exe-
                             cutable.   True  indicates  only
                             that the execute flag is on.  If
                             file  is a directory, true indi-
                             cates that file can be searched.

(是的,!显然是否定的)

对于类似的evualation标志,可在此处获取文档:http://illumos.org/man/1/test

答案 1 :(得分:2)

! -x条件意味着文件或目录没有为当前用户设置可执行位。对于它也适用于目录这一事实的帮助有点不太明确,但它说:

$ help test | fgrep -- '-x'
      -x FILE        True if the file is executable by you.