标签:linux之bash
bash变量之高级部分
1.变量扩展
${变量名称} 变量扩展 例如:${filename}
$(命令) 命令替换 例如:$(ls /)
$((算术式)) 算式扩展 例如:$((9+9))
变量扩展:一种简易的条件判断,对不同的条件赋予变量不同的替换值,是一种隐含的“if-then-else”的程序语法
判断变量存在与否的基本语法:${待测变量-默认值}
口诀:有就传存在的,没有,就传入默认值
存在与否或者为空:${待测变量-:默认值}
口诀:有就传存在的,没有或者空,就传入默认值
存在与否或者为空:${待测变量:=默认值}
口诀:给不存在或者为空的变量,设定默认值
存在与否或者为空,输出提示信息:${待测变量:?提示信息}
目的:在脚本中,为了检测变量为空或者不存在,输出提示信息,以防止脚本出现严重问题
测试变量的存在性:${待测变量:+真值}
目的:测试变量存在,存在而且有值,即是真
整理图片请查看附件
变量为字符串时,切片取子串的用法:
大致有两种:1.${变量:位置起点} 2.${变量:位置起点:长度}
取传入字符串的长度:${#变量名称} 此方法的扩展应用:${#数组[@]}或者${#数组[*]}均为取数组元素的个数
样式对比应用:${变量#样式} 从最左边开始,对比变量值,删除“最短相符合字符串”
${变量##样式} ... “最长相符合字符串”
${变量%样式} 从最右边开始,对比变量值,删除“最短相符合字符串”
${变量%%样式}.... “最长相符合字符串”
取代或删除部分字符串
${变量/样式/替换字符串}:只替换第一个对比符合的字符串
${变量//样式/替换字符串}:替换所有符合的字符串
${变量/样式}:删除第一个符合的字符串
${变量//样式}:删除所有符合的字符串
标签:linux之bash
原文地址:http://5404542.blog.51cto.com/5394542/1691638