bash之字符串类型
1.4.2 字符串类型
字符串下标默认从0开始
s="12345678912333"
echo $s 输出:345678912333
echo ${s:2} 输出:345678912333 ,表示从下标为2的字符开始输出
echo ${s:2:4} 输出:3456 ,表示从下标为2的字符开始输出,并且只输出4个字符
echo ${#s} 输出:14 ,表示输出s的长度
# 用于字符串中表示去头留尾 ,从左到右开始匹配,匹配到第一个值之后就停止匹配
## 贪婪匹配,匹配到最后一个之后才停止匹配
echo ${s#*12} 输出: 345678 91233 (匹配到第一个12之后,开始停止匹配,输出后面的值)
echo ${s##*12} 输出:333
% 表示去尾留头,从右向左匹配,匹配到第一个值之后停止匹配
%% 表示贪婪匹配,匹配到最后一个符合的值之后停止匹配
echo ${s%2*} 输出:1234567891
echo ${s%%2*} 输出:1
/表示替换,从左到右,替换第一个指定值
//表示全部替换,从左到右,替换指定替换的所有制
echo ${s/12/*} 输出:*345678912333
echo ${s//12/*} 输出:*3456789*333
加双引号表示保留字符串前面的字符
示:b="hello xiaoyu"
echo ${b#*lo} 输出:xiaoyu (x前面是没有空格的)
echo "${b#*lo}" 输出: xiaoyu(x前面有空格的)