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

Med*_*Man 0 bash

以下 bash 脚本的含义是什么:

if [ -d "directory name" -a ! -L "directory name" ]; then # do something fi 到目前为止我能理解的是:

if [ -d "目录名"

但在那之后我迷路了。如果除了解释之外,还有解释 -a 的文档,请额外考虑!-L

Kei*_*son 5

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

the!是逻辑否定运算符,and-a是逻辑“与”。

所以这:

if [ -d "directory name" -a ! -L "directory name" ]; then
Run Code Online (Sandbox Code Playgroud)

意思是“如果目录而不是符号链接”。(-d如果目标是目录的符号链接,则返回 true。

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

`test'
Run Code Online (Sandbox Code Playgroud)