Linux Shell替換:轉義字元,命令替換,變數替換
阿新 • • 發佈:2019-02-05
轉載自:http://c.biancheng.net/cpp/view/2737.html
note that:使用的是反引號,不是單引號(反引號在Esc鍵上方)
#######################################################3
轉義字元
如果表示式中存在特殊字元,Shell將會進行替換。例如,在雙引號中使用變數就是一種替換,轉義字元也是一種替換
#!/bin/bash
a=10
echo -e "the number of a is $a \n"
執行結果為:
此處-e選項表示對轉義字元進行替換。如果不使用-e選項,將會原樣輸出:
執行結果為:
常用轉義字元:
\\ | 反斜槓 |
\a | 警報,響鈴 |
\b | 退格(刪除鍵) |
\f | 換頁(FF),將當前位置移到下頁開頭 |
\n | 換行 |
\r | 回車 |
\t | 水平製表符(tab鍵) |
\v | 垂直製表符 |
echo預設為-E選項:禁止轉義;使用-n可以禁止使用換行符
########################################################
命令替換
Shell可以先執行命令,將輸出結果暫時儲存,在適當的地方輸出
語法:
`command`
note that:使用的是反引號,不是單引號(反引號在Esc鍵上方)
#!/bin/bash
DATE=`date`
echo "Date is $DATE"
執行結果為:
###################################################
變數替換
變數替換可以根據變數的狀態(是否為空 / 是否定義等)來改變它的值
可以使用的變數替換形式:
形式 | 說明 |
${var} | 變數本來的值 |
${var:-word} | 如果變數為空或已被山粗(unset),那麼返回word,但不改變var的值 |
${var:=word} | 如果變數為空或已被刪除,那麼返回word,並將var的值設定為word |
${var:?message} | 如果變數var為空或已被刪除(unset),那麼將訊息message送到標準錯誤輸出,可以用來檢測變數var是否可以被正常賦值 若此替換出現再Shell指令碼中,那麼指令碼將停止執行 |
${var:+word} | 如果變數var被定義,那麼返回word,但不改變var的值 |
#!/bin/bash
echo ${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 var
echo ${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}"
執行結果為: