Shell变量的删除:
[email protected]:~$ path=${PATH} ##设置path和PATH相同内容 [email protected]:~$ echo $path /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games [email protected]:~$ echo ${path#/*sbin:} ##加上‘#’符号删除匹配‘/*sbin:‘最小组合 /usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games [email protected]:~$ echo ${path##/*sbin:} ##加上‘##’删除匹配‘/*sbin:‘最大组合 /bin:/usr/games:/usr/local/games
变量设置方法 |
说 明 |
${变量#关键字} |
若变量内容从开头开始的数据符合“关键字”,则删除最短组合 |
${变量##关键字} |
若变量内容从开头开始的数据符合“关键字”,则删除最长组合 |
${变量%关键字} |
若变量内容从尾部开始的数据符合“关键字”,则删除最短组合 |
${变量%%关键字} |
若变量内容从尾部开始的数据符合“关键字”,则删除最长组合 |
${变量/旧字符串/新字符串} |
若变量内容符合旧字符串,则将第一个旧字符串替换成新字符串 |
${变量//旧字符串//新字符串} |
若变量内容符合旧字符串,则将第一个旧字符串替换成新字符串 |
Shell变量的替换:
[email protected]:~$ path=${PATH} ##设置path和PATH相同内容 [email protected]:~$ echo $path /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games [email protected]:~$ echo ${path/sbin/newsbin} ##将第一个sbin替换成newsbin /usr/local/newsbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games [email protected]:~$ echo ${path//sbin//newsbin} ##将所有的sbin替换成newsbin /usr/local//newsbin:/usr/local/bin:/usr//newsbin:/usr/bin://newsbin:/bin:/usr/games:/usr/local/games
Shell变量的替代:
变量设置方式 | str未设置 | str为空 | str含有内容 |
var=${str-expr} | var=expr | var= | var=$str |
var=${str:-expr} | var=expr | var=expr | var=$str |
var=${str+expr} | var= | var=expr | var=expr |
var=${str:+expr} | var= | var= | var=expr |
var=${str=expr} | str=expr var=expr | str=不变 var= | str=不变 var=$str |
var=${str:=expr} | str=expr var=expr | str=expr var=expr | str=不变 var=$str |
var=${str?expr} | expr输出至stderr | var= | var=str |
var=${str:?expr} | expr输出至stderr | expr输出至stderr | var=str |
时间: 2024-10-12 14:41:02