3

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

if [ ! -x "$TEST_SLAPD" ]

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

我想知道该-x标志在该声明的上下文中意味着if什么?

4

2 回答 2

10

if只是检查它后面的命令的结果。[不是(至少不总是)操作员,它是称为“测试”的小实用程序。

从其文档中:

-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.

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

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

于 2012-06-15T22:11:52.143 回答
3

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

$ help test | fgrep -- '-x'
      -x FILE        True if the file is executable by you.
于 2012-06-15T22:13:07.590 回答