`是什么意思!这个Bash命令中的-d`?

Pul*_*out 15 linux bash shell

简单的问题,我不明白是什么!,并-d在下面的语句的意思.

if [ ! -d $directory ]
Run Code Online (Sandbox Code Playgroud)

小智 16

-d 是一个测试给定目录是否存在的运算符.

例如,我有一个名为/ home/sureshkumar/test /的目录.

目录变量包含"/ home/sureshkumar/test /"

if [ -d $directory ]
Run Code Online (Sandbox Code Playgroud)

仅当目录存在时,此条件才为真.在我们的示例中,该目录存在,因此该条件为true.

我正在将目录变量更改为"/ home/a/b /".该目录不存在.

if [ -d $directory ]
Run Code Online (Sandbox Code Playgroud)

现在这种情况是错误的.如果我把!目录放在前面,如果目录不存在,那么if条件为真.如果目录存在,则if [ ! -d $directory ]条件为false.

操作的!运算符是条件为真,然后表示条件为假.如果条件为假,则说条件为真.这是工作!运营商.

if [ ! -d $directory ]
Run Code Online (Sandbox Code Playgroud)

仅当$目录不存在时,此条件才为真.如果该目录存在,则返回false.

  • 注意,如果命名文件存在但是常规文件,或者其他更深奥的东西(FIFO,特殊块,特殊字符等),则-d测试也会失败。如果该名称是符号链接并指向目录,则它将通过;否则,它将通过。否则失败。 (2认同)

jDo*_*jDo 7

括号是测试可执行文件,感叹号是否定,-d选项检查变量$directory是否是目录.

男人测试:

-d FILE
       FILE exists and is a directory

! EXPRESSION
       EXPRESSION is false
Run Code Online (Sandbox Code Playgroud)

结果是if语句说"if $directoryis not a directory"


小智 5

  • !否定条件。
  • -d选项检查$directory是否是目录。