Bash

bash腳本中的(表達式)和(命令)有什麼區別

  • October 26, 2022

bash 腳本中的命令和表達式之間有什麼有意義的區別嗎?另外,我知道(命令)打開一個新的子shell並執行命令,但我不知道當你有(表達式)時會發生什麼。當您使用表達式而不是命令時會發生什麼。

例如

[[ ( "$#" < 1 ) ]] 

謝謝

[[ ( "$#" < 1 ) ]] 

這是一個[[ ... ]]測試,檢查$#位置參數的數量是否按1字典順序排序(用於-lt代替< 執行算術“小於”測試)。

在 shell 的特殊[[ ... ]]語法中bash,括號不引入子 shell,而是提供一種對錶達式進行分組的方法,以覆蓋運算符的正常優先級。

這在bash手冊中進行了解釋,其中描述了[[ ... ]]語法:

[[ expression ]]

$$ … $$ 表達式可以使用以下運算符組合,按優先級降序排列:

( expression )

返回 的值expression。這可用於覆蓋運算符的正常優先級。

$$ …etc… $$

引用自:https://unix.stackexchange.com/questions/722502