版权声明 :转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://franksun.blogbus.com/logs/17729745.html
1. 引用Bash变量的简洁形式为$varname ,它是一种完整形式为${varname } 。
2. 替换操作符 :
(1)${varname :-word } 。若varname 存在且非null,返回其值,否则返回word 。用来返回默认值 。
(2)${varname :+word } 。若varname 存在且非null,返回word ,否则返回null。用来测试存在性 。
(3)${varname :=word } 。若varname 存在且非null,返回其值,否则将其设置为word ,再返回其值。用来设置默认值 。
(4)${varname :?message } 。若varname 存在且非null,返回其值,否则打印varname :后跟信息message ,并退出当前命令或脚本。用来捕获未定义变量 。
(5)${varname :offset } 及${varname :offset :length } 。返回$varname 从offset 位置开始(首字符为0),长length 的子字符串。若省略长度则至尾字符。
3. 模式匹配操作符 (此处的模式是指bash通配符 意义上的模式):
(1)${variable #pattern } 。若模式匹配变量的开头 ,删除最短 的匹配部分,并返回其余部分。${variable ##pattern } 。若模式匹配变量的开头 ,删除最长 的匹配部分,并返回其余部分。
(2)${variable %pattern } 。若模式匹配变量的结尾 ,删除最短 的匹配部分,并返回其余部分。${varible %%pattern } 。若模式匹配变量的结尾 ,删除最长 的匹配部分,并返回其余部分。
(3)${variable /pattern /string } 及${variable //pattern /string } 。二者都是将variable 中匹配模式的最长 部分替换为string 。前者只替换首个 匹配的部分。后者替换所有 匹配的部分。
4. 长度操作符 :${#varname } 。返回变量字符串值的长度。