在做shell批處理程序時候,經常會涉及到字符串相關操作。有很多命令語句,如:awk,sed都可以做字符串各種操作。 其實shell內置一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程序等時間,因此速度會非常的快。
一、判斷讀取字符串值
| 表達式 | 含義 | 
|---|---|
| ${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被設置了, 那么其值就是$OTHER, 否則就為null字符串 | 
| ${var?ERR_MSG} | 如果var沒被聲明, 那么就打印$ERR_MSG * | 
| ${var:?ERR_MSG} | 如果var沒被設置, 那么就打印$ERR_MSG * | 
| ${!varprefix*} | 匹配之前所有以varprefix開頭進行聲明的變量 | 
| ${!varprefix@} | 匹配之前所有以varprefix開頭進行聲明的變量 | 
加入了“*” 不是意思是: 當然, 如果變量var已經被設置的話, 那么其值就是$var.
新聞熱點
疑難解答