linux 中的感叹号是什么意思?
what does exclamation mark mean in linux?
我一直在学习一些在线课程,他们要求我从 GitHub 克隆一个存储库,如下所示...
克隆包含本实验室所需工件的 git 存储库(如果尚不存在)。
[ ! -d 'cc201' ] && git clone https://gitlab.com/ibm/skills-network/courses/cc201.git
但是,我不明白下面的命令
[ ! -d 'cc201' ]
这个有什么用??谁能知道它到底是干什么用的!?
感叹号表示“不”(如布尔值),-d
标志表示文件夹存在于 bash。
所以它本质上是一个条件,即:“如果名为 'cc201' 的文件夹不存在,则执行某些操作
注意!
在Linux(操作系统)中没有特殊含义,但在[=50=的几个标准程序中].在您的情况下,它不是 bash 的一个功能(正如 Mark Bramnik 在他的其他正确答案中所声称的那样),而是称为 test
或 [
的标准程序的一个功能。由于 bash 在内部模拟此命令,当然它也必须解释 !
,但可以通过执行 man test 找到定义,其中描述为:
! EXPRESSION
EXPRESSION is false
实际上,bash 也有 !
,具有相关但不相同的含义。如果您通过在程序前加上 !
来调用程序,即
! prog
bash 如果 prog 以非零退出代码终止,则将退出代码设置为 0,如果 prog[,则将其设置为 1 =39=] 以退出代码零终止。因此,你可以写
[ ! -d cc201 ]
与
一样好
! [ -d cc201 ]
整体效果是一样的,但前者是test的!
,后者又被bash模仿,而后者是 bash.
的内置 ststus 代码否定符
我一直在学习一些在线课程,他们要求我从 GitHub 克隆一个存储库,如下所示...
克隆包含本实验室所需工件的 git 存储库(如果尚不存在)。
[ ! -d 'cc201' ] && git clone https://gitlab.com/ibm/skills-network/courses/cc201.git
但是,我不明白下面的命令
[ ! -d 'cc201' ]
这个有什么用??谁能知道它到底是干什么用的!?
感叹号表示“不”(如布尔值),-d
标志表示文件夹存在于 bash。
所以它本质上是一个条件,即:“如果名为 'cc201' 的文件夹不存在,则执行某些操作
注意!
在Linux(操作系统)中没有特殊含义,但在[=50=的几个标准程序中].在您的情况下,它不是 bash 的一个功能(正如 Mark Bramnik 在他的其他正确答案中所声称的那样),而是称为 test
或 [
的标准程序的一个功能。由于 bash 在内部模拟此命令,当然它也必须解释 !
,但可以通过执行 man test 找到定义,其中描述为:
! EXPRESSION EXPRESSION is false
实际上,bash 也有 !
,具有相关但不相同的含义。如果您通过在程序前加上 !
来调用程序,即
! prog
bash 如果 prog 以非零退出代码终止,则将退出代码设置为 0,如果 prog[,则将其设置为 1 =39=] 以退出代码零终止。因此,你可以写
[ ! -d cc201 ]
与
一样好! [ -d cc201 ]
整体效果是一样的,但前者是test的!
,后者又被bash模仿,而后者是 bash.