在做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.
新闻热点
疑难解答