像 Linux 這樣的基于 GNU 的操作系統依賴于一個名為 Bash 的命令語言解釋器或 Shell 來完成它們的大部分計算任務和目標。
Bash 是 Bourne Again Shell 的縮寫,Bunne Again Shell 是一個雙關的名稱,是對 Bourne Shell (即 Steven Bourne 發明)的致敬。在兼容性方面,Bash 和 sh 是絕配。C shell ( csh ) 和Korn shell ( ksh ) 中明顯的有用特性也包含在這個 shell 語言解釋器中。 在實現方面,Bash 旨在符合 IEEE POSIX 規范(IEEE 標準 1003.1)工具部分和 IEEE POSIX Shell。因此,作為一種交互式和編程工具,Bash ?提供的功能改進勝過 sh 中的改進。 Linux 和其他基于 GNU 的操作系統的用戶不必僅僅依賴Bash作為他們的主要命令語言解釋器,因為像 csh 這樣的 shell 版本也預先打包在這些系統中。由于其獨特的 shell 屬性(如可移植性),Bash 僅配置為用作默認 Linux shell。 為了比較與 Bash 環境相關的這兩個屬性,我們必須重申 登錄后復制 背后的語法 登錄后復制在 Bash 中比較 $() 與 ${}
$()to$(command)
和${}to ${parameter}
。因此,我們可以嘗試定義這兩個 Bash 實體。理解 $(命令)
$(command)
在Bash中涉及命令替換。更具體地說,命令部分in$(command)
被執行,其輸出被捕獲并打印在標準輸出上。牛逼啊!接私活必備的 N 個開源項目!趕快收藏
$(command)
是令牌級別的??紤]執行以下命令,該命令旨在在終端上打印出當前日期。echo "今天是 $(date). LinuxMi.com 又是美好的一天。"
在 Linux 中打印日期 上述執行可以用以下方式解釋。首先,執行 date 命令并將其輸出作為參數包含在 echo 命令中。 在這里,我們可以假設命令替換在重新包含在主 shell 之前在單獨的子 shell 中執行。 大括號 至于位置參數,可以用一個或多個數字來表示(單個數字 0 除外)。因此,如果我們有一個名為 考慮以下變量聲明命令: 登錄后復制 讓我們調用 animal 變量以嘗試將變量值復數: 登錄后復制了解 ${parameter}
${parameter}
在Bash中涉及參數替換。根據 Bash 手冊頁,參數是一個值存儲實體。參數實體可以與名稱、數字或特殊字符相關聯。{}
暗示我們在處理位置參數,或者在使用的參數(參數值)后面是一個與參數名稱不相關的非解釋性字符,例如${animal}s
。$variable_name
的變量,則可以使用參數 替換${parameter}
來檢索關聯的變量值。$ animal=lion
$ echo $animals
在命令中聲明變量 在標準輸出中不會打印任何內容,因為 Bash 不理解變量 登錄后復制$animals
。但是,我們可以通過如下方式使用參數替換方法成功調用我們的$animals
變量:$ echo ${animal}s
在命令中調用變量 在某些情況下,感嘆號可能會在參數替換實現的第一個左大括號之后出現。在這種情況下,就會出現變量間接的概念。另外,搜索公眾號Linux就該這樣學后臺回復“猴子”,獲取一份驚喜禮包。 變量值優先于參數值,如下所示: 登錄后復制$ animal=lion
$ echo $animal
$ lion=rafiki
$ echo $lion
$ echo ${!animal}
參數值的優先級 希望本文能夠說明 Bash 中$()
和${}
之間的區別。
以上就是Bash 中的 ${} 和 $() 有什么區別的詳細內容,更多請關注www.92cms.cn其它相關文章!