简单的问题,我不明白以下陈述中!
和-d
的含义。
if [ ! -d $directory ]
答案 0 :(得分:12)
-d
是一个运算符,用于测试给定目录是否存在。
例如,我有一个名为/ home / sureshkumar / test /的目录。
目录变量包含“/ home / sureshkumar / test /”
if [ -d $directory ]
仅当目录存在时,此条件才为真。在我们的示例中,该目录存在,因此该条件为真。
我正在将目录变量更改为“/ home / a / b /”。 该目录不存在。
if [ -d $directory ]
现在这个条件是假的。如果我在目录不存在的情况下将!
放在前面,则if条件为真。如果目录存在,则if [ ! -d $directory ]
条件为false。
if [ ! -d $directory ]
仅当$ directory不存在时,此条件才为真。如果该目录存在,则返回false。
答案 1 :(得分:6)
括号是测试可执行文件,感叹号是否定,-d
选项检查变量$directory
是否是目录。
来自man test:
-d FILE
FILE exists and is a directory
! EXPRESSION
EXPRESSION is false
结果是if语句说"如果$directory
不是目录"
答案 2 :(得分:3)
!
表示不是
-d
表示测试目录是否存在
因此,if [ ! -d $directory ]
表示如果$directory
不存在,或者$ directory不是目录(可能是文件)。
通常后跟一个用于创建目录的语句,例如
if [ ! -d $directory ]; then
mkdir $directory
fi
答案 3 :(得分:1)
-d
是bash中的测试运算符,当你将!
放在测试运算符之前 - 它否定了相同的
答案 4 :(得分:0)
!
否定条件。-d
选项检查$directory
是否为目录。