说明:这里做的改变只是反映在输出显示方面,并没有直接改变变量的内容!!!!
变量内容的删除
语法格式 | 功能 |
---|---|
${变量#关键词} | 若变量内容从头开始的数据符合关键词,则将符合的最短数据删除 |
${变量##关键词} | 若变量内容从头开始的数据符合关键词,则将符合的最长数据删除 |
${变量%关键词} | 若变量内容从尾向前的数据符合关键词,则将符合的最短数据删除 |
${变量%%关键词} | 若变量内容从尾向前的数据符合关键词,则将符合的最长数据删除 |
注:特别注意这里的删除并不能任意匹配变量内容,只能从头或者从尾开始匹配!!!!!
例子:
$ var=/name1:/name2:/name3:/nasadsme4: //创建一个变量
$ v1="I am varible1${var#/*2}" //删除var最短的匹配段
$ echo ${v1}
I am varible1:/name3:/nasadsme4:
$ v1="I am varible1${var##/*n}" //删除最长的匹配段
$ echo ${v1}
I am varible1asadsme4:
v1="I am varible1${var#ds*4}" //从头从尾都没有可以匹配的项,虽然中间有匹配
$ echo ${v1}
I am varible1/name1:/name2:/name3:/nasadsme4:
变量内容的替换
语法格式 | 功能 |
---|---|
${变量/旧字符串/新字符串} | 若变量内容符合字旧符串,则第一个旧字符串被新字符串替换 |
${变量//旧字符串/新字符串} | 若变量内容符合字旧符串,则全部旧字符串被新字符串替换 |
例子:
$ var=/name1:/name2:/name3:/nasadsme4: //创建一个变量
$ v1="I am varible1${var//name/age}" //用age替换全部name
$ echo ${v1}
I am varible1/age1:/age2:/age3:/nasadsme4: