Shell变量的删除:
horace@horace-v490u:~$ path=${PATH} ##设置path和PATH相同内容 horace@horace-v490u:~$ echo $path /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games horace@horace-v490u:~$ echo ${path#/*sbin:} ##加上‘#’符号删除匹配‘/*sbin:‘最小组合 /usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games horace@horace-v490u:~$ echo ${path##/*sbin:} ##加上‘##’删除匹配‘/*sbin:‘最大组合 /bin:/usr/games:/usr/local/games
变量设置方法 | 说 明 |
${变量#关键字} | 若变量内容从开头开始的数据符合“关键字”,则删除最短组合 |
${变量##关键字} | 若变量内容从开头开始的数据符合“关键字”,则删除最长组合 |
${变量%关键字} | 若变量内容从尾部开始的数据符合“关键字”,则删除最短组合 |
${变量%%关键字} | 若变量内容从尾部开始的数据符合“关键字”,则删除最长组合 |
${变量/旧字符串/新字符串} | 若变量内容符合旧字符串,则将第一个旧字符串替换成新字符串 |
${变量//旧字符串//新字符串} | 若变量内容符合旧字符串,则将第一个旧字符串替换成新字符串 |
Shell变量的替换:
horace@horace-v490u:~$ path=${PATH} ##设置path和PATH相同内容 horace@horace-v490u:~$ echo $path /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games horace@horace-v490u:~$ echo ${path/sbin/newsbin} ##将第一个sbin替换成newsbin /usr/local/newsbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games horace@horace-v490u:~$ 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 |
原文地址:http://horace.blog.51cto.com/2921660/1729773