我一直在学习一些在线课程,他们要求我从 GitHub 克隆一个存储库,如下所示......
克隆包含此实验室所需工件的 git 存储库(如果尚不存在)。
[ ! -d 'cc201' ] && git clone https://gitlab.com/ibm/skills-network/courses/cc201.git
但是,我不明白下面的命令
[ ! -d 'cc201' ]
这有什么用??谁能知道它到底是干什么用的!?
请注意,!
在Linux(操作系统)中没有特殊含义,而是在 Linux 中的几个标准程序中。在您的情况下,它不是 bash 的一个特性(正如 Mark Bramnik 在他的其他正确答案中声称的那样),而是称为test
or的标准程序的一个特性[
。由于 bash 在内部模拟这个命令,当然它也必须解释!
,但是可以通过执行man test找到定义,它被描述为:
! EXPRESSION EXPRESSION is false
实际上,bash也有一个!
,具有相关但不相同的含义。如果你用前缀来调用一个程序!
,即
! prog
bash中设置的退出代码为0;如果PROG与非零退出代码终止,并且将其设置为1,如果PROG,退出代码零终止。因此,你可以写
[ ! -d cc201 ]
同样好
! [ -d cc201 ]
整体效果是一样的,但前者是!
from test,后者依次被 bash 模拟,而后者是 bash 内置的 ststus-code 否定器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句