| 表達式 | 含義 |
|---|---|
| ${var} | 變量var的值, 與$var相同 |
| ${var-DEFAULT} | 如果var沒有被聲明, 那么就以$DEFAULT作為其值 * |
| ${var:-DEFAULT} | 如果var沒有被聲明, 或者其值為空, 那么就以$DEFAULT作為其值 * |
| ${var=DEFAULT} | 如果var沒有被聲明, 那么就以$DEFAULT作為其值 * |
| ${var:=DEFAULT} | 如果var沒有被聲明, 或者其值為空, 那么就以$DEFAULT作為其值 * |
| ${var+OTHER} | 如果var聲明了, 那么其值就是$OTHER, 否則就為null字符串 |
| ${var:+OTHER} | 如果var被設(shè)置了, 那么其值就是$OTHER, 否則就為null字符串 |
| ${var?ERR_MSG} | 如果var沒被聲明, 那么就打印$ERR_MSG * |
| ${var:?ERR_MSG} | 如果var沒被設(shè)置, 那么就打印$ERR_MSG * |
| ${!varprefix*} | 匹配之前所有以varprefix開頭進行聲明的變量 |
| ${!varprefix@} | 匹配之前所有以varprefix開頭進行聲明的變量 |
* 很簡單,大家試試就明白了,不多說,注意美元符號與左花括號之間不能存在空格,左花括號不能與變量名間存在空格,變量名不能與判斷符合間有空格。
2、字符串操作(長度獲取,讀取,匹配刪除,替換)
| 表達式 | 含義 |
|---|---|
| ${#string} | $string的長度 |
| ${string:position} | 在$string中, 從位置$position開始提取子串 |
| ${string:position:length} | 在$string中, 從位置$position開始提取長度為$length的子串 |
| ${string#substring} | 從變量$string的開頭, 刪除最短匹配$substring的子串 |