shell字符串

字符串的三种形式:

  1. ''包围的字符串
    • 任何字符都会原样输出,其中的变量是无效的。
    • 字符串中不能出现单引号,即使转义也不行
  2. ""包围的字符串
    • 包含了变量会被解析
    • 字符串中可以再包含双引号,只要被转义就行
  3. 不被引号包围的字符串
    • 包含了变量会被解析
    • 不能出现空格,否则后面的字符串就会被作为其他变量或是命令解析

获取字符串的长度

$(#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 左边的所有字符。