Shell字符串处理之${}

如题所述

第1个回答  2022-08-15

上一章节讲解了为什么用${}引用变量,${}还有一个重要的功能,就是文本处理,单行文本基本上可以满足你所有需求。

2.1 获取字符串长度

2.2 字符串切片

格式:

${parameter:offset}

${parameter:offset:length}

截取从offset个字符开始,向后length个字符。

2.3 替换字符串

格式:${parameter/pattern/string}

2.4 字符串截取

格式:

${parameter#word} # 删除匹配前缀

${parameter##word}

${parameter%word} # 删除匹配后缀

${parameter%%word}

# 去掉左边,最短匹配模式,##最长匹配模式。

% 去掉右边,最短匹配模式,%%最长匹配模式。

# 去掉左边,从左边匹配第一个,##从右边匹配第一个。

% 去掉右边,从右边匹配第一个,%%从左边匹配第一个。

有*号情况下才这样。

2.5 变量状态赋值

${VAR:-string} 如果VAR变量为空则返回string

${VAR:+string} 如果VAR变量不为空则返回string

${VAR:=string} 如果VAR变量为空则重新赋值VAR变量值为string

${VAR:?string} 如果VAR变量为空则将string输出到stderr

${}主要用途大概就这么多了,另外还可以获取数组元素,在后面章节会讲到。

示例:

相似回答