簡體   English   中英

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' ]

這有什么用?? 誰能知道它到底是干什么用的!?

感嘆號表示“Not”(如布爾值),- -d標志表示 bash 中存在的文件夾。

所以它本質上是一個條件,它說:“如果名為'cc201'的文件夾不存在,那么做一些事情

請注意! Linux (操作系統)中沒有特殊含義,而是在 Linux 中的幾個標准程序中。 在您的情況下,它不是 bash 的一個功能(正如 Mark Bramnik 在他的其他正確答案中聲稱的那樣),而是稱為test[的標准程序的功能。 由於 bash 在內部模擬此命令,因此它當然必須解釋! 同樣,但可以通過執行man test找到定義,它被描述為:

 ! EXPRESSION EXPRESSION is false

實際上,bash確實有一個! 也具有相關但不相同的含義。 如果您通過前綴來調用程序! , IE

! prog

bash中設置的退出代碼為0;如果PROG與非零退出代碼終止,並且將其設置為1,如果PROG,退出代碼零終止。 因此,你可以寫

[ ! -d cc201 ]

同樣好

! [ -d cc201 ]

整體效果是一樣的,但前者是! 來自test ,它反過來被 bash 模擬,而后者是 bash 的內置 ststus-code 否定器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM