shell 命令替換、變量替換 $() `` ${}

命令替換$() ``

Shell 命令替換是指將命令的輸出結果賦值給某個變量
複製代碼

Shell 中有兩種方式能夠完成命令替換,一種是反引號,一種是$(),使用方法以下:bash

variable=`commands`
variable=$(commands)
複製代碼

其中,variable 是變量名,commands 是要執行的命令。commands 能夠只有一個命令,也能夠有多個命令,多個命令之間以分號;分隔。ui

a=`expr 1 + 1`
echo $a
複製代碼

$( )與``區別

在操做上,這二者都是達到相應的效果,可是建議使用$( ),理由以下:

1.``很容易''搞混亂,尤爲對初學者來講。
2.在多層次的複合替換中,``必需要額外的轉義字符處理(反斜線),而$( )比較直觀。
3.$( )的弊端是,並非全部的類unix系統都支持這種方式,但反引號是確定支持的。
複製代碼

變量替換 ${}

變量替換
變量替換能夠根據變量的狀態(是否爲空、是否認義等)來改變它的值

能夠使用的變量替換形式:

形式	說明
${var}	變量原本的值
${var:-word}	若是變量 var 爲空或已被刪除(unset),那麼返回 word,但不改變 var 的值。
${var:=word}	若是變量 var 爲空或已被刪除(unset),那麼返回 word,並將 var 的值設置爲 word。
${var:?message}	若是變量 var 爲空或已被刪除(unset),那麼將消息 message 送到標準錯誤輸出,能夠用來檢測變量 var 是否能夠被正常賦值。
若此替換出如今Shell腳本中,那麼腳本將中止運行。
${var:+word}	若是變量 var 被定義,那麼返回 word,但不改變 var 的值。
複製代碼
相關文章
相關標籤/搜索