${}
可以引用变量,${}
还有一个重要的功能就是字符串处理
> RUMENZ="入门小站"
> echo ${#RUMENZ}
4
${parameter:offset}
${parameter:offset:length}
截取从 offset
个字符开始,向后 length
个字符。
> RUMENZ="入门小站"
> echo ${RUMENZ:0:2}
入门
> echo ${RUMENZ:2}
小站
# 或者
> echo ${RUMENZ:(-2)}
小站
# 从倒数第3个字符开始,截取2个字符
> echo ${RUMENZ:(-3):2}
格式:${parameter/pattern/string}
> RUMENZ="hello world world"
world
> echo ${RUMENZ/world/WORLD}
hello WORLD world
world
> echo ${RUMENZ//world/WORLD}
hello WORLD WORLD
> RUMENZ="abcd1234"
# 删除所有的字母
> echo ${RUMENZ//[0-9]}
abcd
# 删除所有的数字
> echo ${RUMENZ//[^0-9]}
1234
patterm 前面开头一个正斜杠为只匹配第一个字符串,两个正斜杠为匹配所有字符。
格式:
${parameter#word}
${parameter##word}
${parameter%word}
${parameter%%word}
#
去掉左边,最短匹配模式,##
最长匹配模式。 %
去掉右边,最短匹配模式,%%
最长匹配模式。
RUMENZ="https://json.im/bigjson/index.html"
//
前面的https://
(包括//
)> echo ${RUMENZ#*//}
json.im/bigjson/index.html
index.html
前面所有字符> echo ${RUMENZ##*/}
index.html
index.html
echo ${RUMENZ%/*}
https://json.im/bigjson
https:
后面所有的字符> echo ${RUMENZ%%/*}
https:
${VAR:-string}
${VAR:+string}
${VAR:=string}
${VAR:?string}
如果 VAR
变量为空则返回 string
,不改变原变量的值
如果 VAR
变量不为空则返回 string
,不改变原变量的值
如果 VAR
变量为空则重新赋值 VAR
变量值为 string
,改变原变量的值
如果 VAR
变量为空则将 string
输出到 stderr
> RUMENZ=""
> echo ${RUMENZ:-"入门小站"}
入门小站
> echo ${RUMENZ}
> RUMENZ="入门小站"
> echo ${RUMENZ:+"123"}
123
> echo $RUMENZ
入门小站
> RUMENZ=""
> echo ${RUMENZ:="入门小站"}
入门小站
echo ${RUMENZ}
> 入门小站
# 如果变量为空就将信息输出 stderr:
> RUMENZ=""
> echo ${RUMENZ:?null}
bash: RUMENZ: null
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。