第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

[和[[在Bash?之間]有什么區(qū)別?

[和[[在Bash?之間]有什么區(qū)別?

[和[[在Bash?之間]有什么區(qū)別?我查看了bash手冊頁,并[[說它使用條件表達式。然后我查看了Conditional Expressions部分,它列出了與test(和[)相同的運算符。所以我想知道,Bash [和[[Bash 之間的區(qū)別是什么?
查看完整描述

3 回答

?
九州編程

TA貢獻1785條經(jīng)驗 獲得超4個贊

  • [test內(nèi)置相同,并且像test二進制(man test)一樣工作

    • [許多類UNIX環(huán)境中的所有其他基于sh的shell一樣

    • 僅支持單一條件。使用bash &&||運算符進行的多次測試必須在單獨的括號中。

    • 本身不支持'not'運算符。要反轉(zhuǎn)條件,請使用!第一個括號外部來使用shell的工具來反轉(zhuǎn)命令返回值。

    • ==并且!=是文字字符串比較

  • [[ 是一個bash

    • 是特定于bash的,盡管其他shell可能已經(jīng)實現(xiàn)了類似的構(gòu)造。不要指望它在老式的UNIX sh中。

    • ==!=應(yīng)用bash模式匹配規(guī)則,請參閱“模式匹配”man bash

    • 有一個=~正則表達式匹配運算符

    • 允許使用括號和括號內(nèi)的!&&||邏輯運算符來組合子表達式

除此之外,它們非常相似 - 大多數(shù)單獨的測試在它們之間的工作方式相同,當您需要將不同的測試與邏輯AND / OR / NOT操作組合時,事情才會變得有趣。


查看完整回答
反對 回復(fù) 2019-07-31
?
冉冉說

TA貢獻1877條經(jīng)驗 獲得超1個贊

最重要的區(qū)別在于代碼的清晰度。是的,是的,上面說的是真的,但是[[]]使你的代碼符合你在高級語言中所期望的,特別是關(guān)于AND(&&),OR(||)和NOT()運營商。因此,當您在系統(tǒng)和語言之間移動時,您將能夠更快地解釋腳本,從而使您的生活更輕松。從一個好的UNIX / Linux參考中獲取細節(jié)。您可能會發(fā)現(xiàn)某些細節(jié)在某些情況下有用,但您將始終欣賞清晰的代碼!您更喜歡閱讀哪個腳本片段?即使脫離背景,第一選擇也更容易閱讀和理解。


if [[ -d $newDir && -n $(echo $newDir | grep "^${webRootParent}") && -n $(echo $newDir | grep '/$') ]]; then ...

要么

if [ -d "$newDir" -a -n "$(echo "$newDir" | grep "^${webRootParent}")" -a -n "$(echo "$newDir" | grep '/$')" ]; then ...



查看完整回答
反對 回復(fù) 2019-07-31
  • 3 回答
  • 0 關(guān)注
  • 525 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號