一 参数的扩展
1.1字符
会引导参数扩展,可以使用大括号来隔离参数,类似
{P},其中P是变量。
类似上图中的代码运行之后的结果将会是“ni hao”。如果变量不被大括号括起来的话,当变量名之后紧跟数字或字母时,这些数字或字母会被视为变量名称的一部分。
1.2间接的参数引用
上图中,
p2的值是p,而
{!p2}的值是ni,‘!’的作用在这里可以理解是取值,!p2的值是p,${p}则是ni。
二 字符串的处理
2.1大小写转换
shell对字符串的操作比较方便,尤其是可以利用^来对字符串的首个字母进行大写转换,^^可以把字符串的每个字母都变成大写字母;
而‘,’(逗号)则相应的将字符串首字母变为小写,‘,,’(双逗号)可以将字符串的每个字母变成小写。
上图的执行结果分别是NiHao NIHAO niHao nihao
2.2 字符串搜索与替换
shell中查找与替换字符串使用‘/’来实现,如图的代码将“nihao zhongguo”中的nihao 替换成hello。如果‘/’后面什么也不跟,那就表示删除这个匹配的子串,‘//’表示将所有匹配到的字符串全部替换成目标。
2.3求字符串长度
${#p}可以得到p的长度, 其中p是变量。