shell 变量替换
公式
总结
1. ${变量#匹配规则} #从头开始匹配, 最短删除
2. ${变量##匹配规则} #从头开始匹配,最长删除
3. ${变量%匹配规则} #从尾开始匹配,最短删除
4. ${变量%%匹配规则} #从尾开始匹配,最长删除
5.${变量/旧字符串/新字符串} #替换变量内的旧字符串为新字符串,只替换第一个
6. ${变量//旧字符串/新字符串} #替换变量内的旧字符串为新字符串,全部替换
示例
- 删除
var1 ="I love you, Do you love me?"
echo $var1 # I love you, Do you love me?
#从头开始匹配, 最短删除
echo ${var1#*ov} # e you, Do you love me?
#从头开始匹配,最长删除
echo ${var1##*ov} # e me?
#从尾开始匹配,最短删除
echo ${var1%*ov} # e me? # I love you, Do you l
#从尾开始匹配,最长删除
echo ${var1%%*ov} # e me? # I l
- 替换
echo $PATH # /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 将bin替换成BIN
# 替换变量内的旧字符串为新字符串, 只替换第一个
echo ${PATH/bin/BIN} # /usr/local/sBIN:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 替换变量内的旧字符串为新字符串, 全部替换
echo ${PATH//bin/BIN} # /usr/local/s/BIN:/usr/local//BIN:/usr/s/BIN:/usr//BIN:/s/BIN://BIN