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 |