alonli 发表于 2018-5-22 08:39:19

linux之bash变量

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


附件:http://down.51cto.com/data/2366098
页: [1]
查看完整版本: linux之bash变量