Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个bash if语句是什么意思?_Bash - Fatal编程技术网

这个bash if语句是什么意思?

这个bash if语句是什么意思?,bash,Bash,下面的bash脚本是什么意思: if[-d“目录名”-a!-L“目录名”];然后 #做点什么 fi 到目前为止,我能理解: if[-d“目录名” 但是在那之后我就迷路了。如果除了解释之外,还有解释-a!-L的文件,那就需要额外考虑了 [-d文件]-如果文件存在并且是目录,则为True [-文件]-如果文件存在,则为True [-L文件]-如果文件存在并且是符号链接,则为True [!EXPR]-如果EXPR为false,则为True [-d文件]-如果文件存在并且是目录,则为True [-文

下面的bash脚本是什么意思:

if[-d“目录名”-a!-L“目录名”];然后
#做点什么
fi
到目前为止,我能理解:

if[-d“目录名”

但是在那之后我就迷路了。如果除了解释之外,还有解释-a!-L的文件,那就需要额外考虑了
  • [-d文件]
    -如果文件存在并且是目录,则为True
  • [-文件]
    -如果文件存在,则为True
  • [-L文件]
    -如果文件存在并且是符号链接,则为True
  • [!EXPR]
    -如果EXPR为false,则为True
      • [-d文件]
        -如果文件存在并且是目录,则为True
      • [-文件]
        -如果文件存在,则为True
      • [-L文件]
        -如果文件存在并且是符号链接,则为True
      • [!EXPR]
        -如果EXPR为false,则为True
          • [-d文件]
            -如果文件存在并且是目录,则为True
          • [-文件]
            -如果文件存在,则为True
          • [-L文件]
            -如果文件存在并且是符号链接,则为True
          • [!EXPR]
            -如果EXPR为false,则为True
              • [-d文件]
                -如果文件存在并且是目录,则为True
              • [-文件]
                -如果文件存在,则为True
              • [-L文件]
                -如果文件存在并且是符号链接,则为True
              • [!EXPR]
                -如果EXPR为false,则为True
                  • -d
                    是“目录存在”,但您似乎知道这一点
                  • -a
                    是“逻辑与”
                  • 是“表达式为假”
                  • -L
                    是“文件存在并且是符号链接(与-h相同)”
                  所以在英语中,这应该是

                  如果“目录名”存在并且是一个目录“目录名”存在并且不是一个符号链接,那么

                  您需要的文档是
                  人工测试

                  • -d
                    是“目录存在”,但您似乎知道这一点
                  • -a
                    是“逻辑与”
                  • 是“表达式为假”
                  • -L
                    是“文件存在并且是符号链接(与-h相同)”
                  所以在英语中,这应该是

                  如果“目录名”存在并且是一个目录“目录名”存在并且不是一个符号链接,那么

                  您需要的文档是
                  人工测试

                  • -d
                    是“目录存在”,但您似乎知道这一点
                  • -a
                    是“逻辑与”
                  • 是“表达式为假”
                  • -L
                    是“文件存在并且是符号链接(与-h相同)”
                  所以在英语中,这应该是

                  如果“目录名”存在并且是一个目录“目录名”存在并且不是一个符号链接,那么

                  您需要的文档是
                  人工测试

                  • -d
                    是“目录存在”,但您似乎知道这一点
                  • -a
                    是“逻辑与”
                  • 是“表达式为假”
                  • -L
                    是“文件存在并且是符号链接(与-h相同)”
                  所以在英语中,这应该是

                  如果“目录名”存在并且是一个目录“目录名”存在并且不是一个符号链接,那么


                  您需要的文档是
                  mantest
                  -L
                  操作符测试其参数是否为符号链接。它也可以写成
                  -h

                  是逻辑求反运算符,
                  -a
                  是逻辑“and”

                  因此:

                  if [ -d "directory name" -a ! -L "directory name" ]; then
                  
                  表示“如果任何内容是目录而不是符号链接”。(
                  -d
                  如果目标是指向目录的符号链接,则返回true

                  [
                  语法实际上是
                  test
                  命令的同义词。系统上的
                  mantest
                  info test
                  应该向您显示文档。
                  [
                  也是bash中的内置命令,因此
                  info bash
                  也会向您显示文档;搜索

                  `test'
                  

                  -L
                  运算符测试其参数是否为符号链接。它也可以写成
                  -h

                  是逻辑求反运算符,
                  -a
                  是逻辑“and”

                  因此:

                  if [ -d "directory name" -a ! -L "directory name" ]; then
                  
                  表示“如果任何内容是目录而不是符号链接”。(
                  -d
                  如果目标是指向目录的符号链接,则返回true

                  [
                  语法实际上是
                  test
                  命令的同义词。系统上的
                  mantest
                  info test
                  应该向您显示文档。
                  [
                  也是bash中的内置命令,因此
                  info bash
                  也会向您显示文档;搜索

                  `test'
                  

                  -L
                  运算符测试其参数是否为符号链接。它也可以写成
                  -h

                  是逻辑求反运算符,
                  -a
                  是逻辑“and”

                  因此:

                  if [ -d "directory name" -a ! -L "directory name" ]; then
                  
                  表示“如果任何内容是目录而不是符号链接”。(
                  -d
                  如果目标是指向目录的符号链接,则返回true

                  [
                  语法实际上是
                  test
                  命令的同义词。系统上的
                  mantest
                  info test
                  应该向您显示文档。
                  [
                  也是bash中的内置命令,因此
                  info bash
                  也会向您显示文档;搜索

                  `test'
                  

                  -L
                  运算符测试其参数是否为符号链接。它也可以写成
                  -h

                  是逻辑求反运算符,
                  -a
                  是逻辑“and”

                  因此:

                  if [ -d "directory name" -a ! -L "directory name" ]; then
                  
                  表示“如果任何内容是目录而不是符号链接”。(
                  -d
                  如果目标