1.字符串长度
本章介绍 Bash 字符串常见的操作语法。
首先是获取字符串长度,方式其实和前面一章节获取数组长度类似,都是用的#
号:
${#varname}
比如:
注意这里的大括号{}
是必需的,因为$#
的含义获取脚本参数个数,有特定含义,必须要使用大括号进行分割。
2.子字符串
字符串提取子串的语法如下。
${varname:offset:length}
上面语法的含义是返回变量$varname
的子字符串,从位置offset
开始(从0
开始计算),长度为length
:
上面例子返回字符串www.kucoding.com
从3号位置开始的长度为8的子字符串.kucodin
。
这种语法不能直接操作字符串,只能通过变量来读取字符串,并且不会改变原始字符串。
# 报错
echo ${"hello":2:3}
上面例子中,"hello"
不是变量名,会导致 Bash 报错。
如果省略length
,则从位置offset
开始,一直返回到字符串的结尾:
上面例子是返回变量ku
从4号位置一直到结尾的子字符串。
如果offset
为负值,表示从字符串的末尾开始算起。
注意,负数前面必须有一个空格, 以防止与${variable:-word}
的变量的设置默认值语法混淆。