1. 程式人生 > >shell指令碼的簡單使用:二——之變數替換

shell指令碼的簡單使用:二——之變數替換

[b]Shell變數替換,命令替換,轉義字元[/b]
a=10
echo "a的值是$a\n"


echo -e "加了-e轉義後a的值是$a\n"


#命令替換
#注意是反引號,不是單引號,這個鍵位於 Esc 鍵下方。
DATE=`date`
echo "Date is $DATE"

#當前登入的使用者
Users=`who | wc -l`
echo "當前登入的使用者是 $Users"

#最近更新時間是
Update=`date;uptime`
echo "uptime is $Update"


#變數替換
echo ${var:-"no values"}
echo "var is $var"

#賦值
echo ${var:="my first value"}
echo “var is $var”

unset var
echo ${var:+"this is default value"}
echo "var value 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}"

執行結果
a的值是10\n
加了-e轉義後a的值是10

Date is Tue Apr 4 18:16:49 CST 2017
當前登入的使用者是 1
uptime is Tue Apr 4 18:16:49 CST 2017
18:16:49 up 29 days, 22:11, 1 user, load average: 0.00, 0.01, 0.05
no values
var is
my first value
“var is my first value”

var value is
This is default value
4 - Value of var is prefix
prefix
5 - Value of var is prefix


可以使用的變數替換形式:
${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 的值。