標籤:
命令替換
命令替換是指Shell可以先執行命令,將輸出結果暫時儲存,在適當的地方輸出。
命令替換的文法:
`command`
注意是反引號,不是單引號,這個鍵位於 Esc 鍵下方。
下面的例子中,將命令執行結果儲存在變數中:
#!/bin/bashDATE=`date`echo "Date is $DATE"USERS=`who | wc -l`echo "Logged in user are $USERS"UP=`date ; uptime`echo "Uptime is $UP"
運行結果:
變數替換
變數替換可以根據變數的狀態(是否為空白、是否定義等)來改變它的值
可以使用的變數替換形式:
形式 |
說明 |
${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 的值。 |
請看下面的例子:
#!/bin/bashecho ${var:-"Variable is not set"}echo "1 - Value of var is ${var}"echo ${var:="Variable is not set"}echo "2 - Value of var is ${var}"unset varecho ${var:+"This is default value"}echo "3 - Value of var is $var"var="Prefix"echo ${var:+"This is default value"}echo "4 - Value of var is $var"echo ${var:?"Print this message"}echo "5 - Value of var is ${var}"
運行結果:
Shell命令替換與變數替換