我有了以下行#/ bin/sh的脚本:Shell脚本-x标志含义
if [ ! -x "$TEST_SLAPD" ]
$TEST_SLAPD
是一个.bat文件的完整路径。
我想知道什么-x
标志意味着在该if
语句的上下文中意味着什么?
我有了以下行#/ bin/sh的脚本:Shell脚本-x标志含义
if [ ! -x "$TEST_SLAPD" ]
$TEST_SLAPD
是一个.bat文件的完整路径。
我想知道什么-x
标志意味着在该if
语句的上下文中意味着什么?
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.
(是的,!
显然是否定)
对于类似evualation标志,文档在这里:http://illumos.org/man/1/test
的! -x
条件意味着文件或目录没有为当前用户设置可执行位。这个帮助对于它也适用于目录的事实有点不太清楚,但它说:
$ help test | fgrep -- '-x'
-x FILE True if the file is executable by you.
如果这是返回false,并且该文件肯定存在它可能与shell脚本尝试执行.bat文件? – Baxter
@Baxter是的。这就是为什么-r和-x通常比使用-f测试文件存在更有用。 –