shell参数扩展${}

来源:互联网 发布:js new array 删除 编辑:程序博客网 时间:2024/05/18 07:37
shell参数扩展:
 
${parameter:-word}
如果parameter为null或者未设置,整个参数替换表达式值为word
 
${parameter:=word}
如果parameter为null或者未设置,整个参数替换表达式值为word,并且parameter参数值设置为word
 
${parameter:?word}
如果parameter为null或者未设置,则打印出错误信息。否则,整个参数替换表达式值为$parameter
 
${parameter:+word}
如果parameter不为null或者未设置,则整个参数替换表达式值为word
 
上面4种可以用来进行缺省值的替换。
<br>
${#parameter}
上面这种可以获得字符串的长度。
 
 
${parameter%word}
${parameter%%word}
从尾开始扫描word,将匹配word正则表达式的字符过滤掉
%为最短匹配,%%为最长匹配
 
${parameter#word}
${parameter##word}
从头开始扫描word,将匹配word正则表达的字符过滤掉
#为最短匹配,##为最长匹配
 
上面4个用来截取字符串的方法。<br>
 
${parameter:offset}从offset到结束
${parameter:offset:length}从offset开始截取n个
以上是截取parameter的值的子字符串。
 
 
${!prefix*}
${!prefix@}
将带有前缀为prefix的参数名打印出来
 
${!name[@]}
${!name[*]}
这个是针对name数组的,打印出来name数组有哪些下标
<br>
${parameter/pattern/string}
${parameter//pattern/string}
将parameter对应值的pattern字符串替换成为string字符串
/表示只替换一次
//表示全部替换