shell變量賦值與引用及擴展

shell變量賦值:name=string

“=”是賦值符號。兩邊不能直接跟空格,否則shell將視爲命令。
string是被賦予的變量值。若string中包含空格、製表符和換行符,則string必須用單雙引號將其括起來。雙引號了允許使用變量替換,單引號內不能。

引用變量:
1、在變量名前使用$字符,即$name的形式引用變量的值
2、爲了界定變量名,避免混淆,也可以使用 ${name}的格式引用。

變量輸出:
echo
printf 用戶格式化輸出

變量賦值
若字符換恰好是可執行的命令,且包括在``中,將返回執行結果。
myhello=`echo hello`

申明全局變量
export


shell變量的輸入
1、read [參數] [變量名]
常用參數
-p prompt:設置提示信息。
-t timeout:設置輸入的等待秒數


變量替換擴展

表達式
說明
${var-DEFAULT}
若var未被生命,則以DEFAULT作爲其值
${var=DEFAULT}
${var:-DEFAULT}
若var未被生命或其值爲空,則以DEFAULT作爲其值
${var:=DEFAULT}
${var+OTHER}

若var唄聲明瞭,那麼其值就是OTHER,否則爲空

${var:+OTHER}

若var被聲明瞭或其值不爲空,那麼其值就是OTHER,否則就爲空

${!varprefix*}
匹配之前所有以varprefix開頭進行聲明的變量
${!varprefix@}
匹配之前所有以varprefix開頭進行聲明的變量


變量的字符串操作

表達式
說明
${#string}
$string的長度
${string:position}
在$string中,從位置$position開始提取子串
${string:position:length}

在$string中,從position開始提取長度爲length的子串

${string#substring}
從變量$string的開頭,刪除最短匹配$substring的子串
${string##substring}
從變量$string的開頭,刪除最長匹配$substring的子串
${string%substring}
從變量$string的結尾,刪除最短匹配$substring的子串
${string%%substring}
從變量$string的結尾,刪除最長匹配$substring的子串
${string/#substring/replacement}
如果$string的前最匹配$substring,那麼就用$replacement來代替匹配的$substring
${string/%substring/replacement}
如果$string的後最匹配$substring,那麼就用$replacement來代替匹配的$substring


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章