首页 > 代码库 > Shell参数展开
Shell参数展开
参数展开(parameter expansion)是shell提供变量值在程序中使用的过程。
展开运算符 包括替换运算符和模式匹配运算符
替换运算符
运算符 | 替换说明 | 记忆 |
${varname:-word} | 若varname存在且非null,则返回其值;否则返回word。 | 空则返回word |
${varname:=word} | 若varname存在且非null,则返回其值;否则,设置varname的值为word,并返回其值。改变变量的值。 | 空则返回word,并改变变量值 |
${varname:?message} | 若varname存在且非null,则返回它的值;否则,显示varname: message,并退出当前的命令或脚本。省略message会出现默认信息parameter null or not set。 | 空则显示警告,并退出。 |
${varname:+word} | 若varname存在且非null,则返回word;否则,返回null。 | 非空返回word,空则返回null。 |
示例:
$ echo ${varname}
$ echo ${varname} $ echo ${varname:?warning1}
$ varname= $ echo ${varname}
$ echo ${varname:+var5}
|
模式匹配运算符
运算符 | 替换 | 记忆 |
${variable#pattern} | 如果模式匹配于变量值的开头处,则删除匹配的最短部分,并返回剩下的部分。 | 删除开头最短(一个#)部分 |
${variable##pattern} | 如果模式匹配于变量值的开关处,则删除匹配的最长部分,并返回剩下的部分。 | 删除开关最长(两个#)部分 |
${variable%pattern} | 如果模式匹配于变量值的结尾处,则删除匹配的最短部分,并返回剩下部分。 | 删除结尾最短(一个%)部分 |
${variable%%pattern} | 如果模式匹配于变量值的结尾处,则删除匹配的最长部分,并返回剩下部分。 | 删除结尾最长(两个%)部分 |
示例:
$ export myvar=/home/merlin/myfile.log.tail $ echo ${myvar} $ echo ${myvar#/*/} $ echo ${myvar##/*/} $ echo ${myvar%.*} $ echo ${myvar%%.*} |
Shell参数展开
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。