shell字符串
字符串的三种形式:
- 由
''
包围的字符串- 任何字符都会原样输出,其中的变量是无效的。
- 字符串中不能出现单引号,即使转义也不行
- 由
""
包围的字符串- 包含了变量会被解析
- 字符串中可以再包含双引号,只要被转义就行
- 不被引号包围的字符串
- 包含了变量会被解析
- 不能出现空格,否则后面的字符串就会被作为其他变量或是命令解析
获取字符串的长度
$(#string_name)
name="holo"
echo $(#name) [[输出4]]
字符串拼接
在shell中,无需任何操作,直接将两个字符串放在一起就行了,它们就会拼接好。
name="holo"
age=22
ret=${name}-${age}
echo ${ret} [[输出holo-22]]
字符串截取
${string: start :length} | 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。 |
---|---|
${string: start} | 从 string 字符串的左边第 start 个字符开始截取,直到最后。 |
${string: 0-start :length} | 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。 |
${string: 0-start} | 从 string 字符串的右边第 start 个字符开始截取,直到最后。 |
${string#*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 |
${string##*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 |
${string%*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |
${string%%*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |
...