1. 程式人生 > >Linux Shell替換:轉義字元,命令替換,變數替換

Linux Shell替換:轉義字元,命令替換,變數替換

轉載自:http://c.biancheng.net/cpp/view/2737.html

#######################################################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}"

執行結果為: