码迷,mamicode.com
首页 > 其他好文 > 详细

${ }引用变量的高级用法

时间:2018-03-25 20:43:55      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:变量的高级用法   字符串切片   间接引用   

变量的高级用法--${var}是我们在shell 脚本中最常用到的方法,其实${ }还有很多对变量的高级用法,我们使用这些方法可以给我们在变量引用时带来很大的方便。



目录

  • 字符串处理

  • 字符串切片

  • 字符串变量赋值

  • 变量间接引用


一、字符串的处理

    ${var#*pattern}    # 从左到右,删除字符串开头至第一次出现的pattern部分 技术分享图片

    ${var##*pattern}    # 从左到右,删除字符串开头至最后出现pattern部分

技术分享图片 

    ${var%pattern*}    # 从右到左,删除字符串结尾至第一次出现pattern的部分

    ${var%%pattern*}   # 从右到左,删除字符串结尾至最后一次出现pattern的部分 

技术分享图片   


    ${var/pattern/substr}    # 查找var存储的字符串中,第一个被pattern匹配到的字符替换为substr

    ${var//pattern/substr}   # 查找var存储的字符串中,所有被pattern匹配到的字符替换为substr

    ${var/#pattern/substr}   # 查找var存储的字符串中,开头被pattern匹配到的字符替换为substr

    ${var/%pattern/substr}   # 查找var存储的字符串中,结尾被pattern匹配到的字符替换为substr

技术分享图片


    ${var/pattern/}    # 查找var存储的字符串中,删除第一次被pattern匹配到的字符

    ${var//pattern/}   # 查找var存储的字符串中,删除所有被pattern匹配到的字符

    ${var/#pattern/}   # 查找var存储的字符串中,删除开头被pattern匹配到的字符

    ${var/%pattern/}   # 查找var存储的字符串中,删除结尾被pattern匹配到的字符

技术分享图片


    ${var^^}    # 将var存储的字符串中的所有小写替换为大写

    ${var,,}    # 将var存储的字符串中的所有大写替换为小写,注意是英文逗号

二、字符串切片

    ${#var}        # 引用字符串的长度

    ${var:offset}  # 从左到右,引用字符串从第offset(不包括offset)个字符开始到最后的部分

    ${var:offset:number}    # 从左到右,引用字符串从第offset(不包括offset)个字符开始,长度为number的部分

    ${var: -length}        # 取字符串最右侧length个字符,注意-length前有一个空格

    ${var: -length:number}  # 先从右到左取length个字符,在从前边得到的字符中取长度为number的部分,同样的注意length前的空格    

技术分享图片

三、字符串变量赋值

    ${var:-value}        # var为空或未设置,则返回value;有值则返回var的值

技术分享图片

    ${var:+value}        # var为空或未设置,则返回空值;有值则返回value

技术分享图片

    ${var:=value}        # var为空或未设置,则返回value并赋值给value;有值则返回var的值

技术分享图片

    ${var:?error_info}   # var为空或未设置,则返回error_info的信息;有值则返回var的值

技术分享图片

四、变量间接引用

    如果var1=var2,var2=value,直接用变量var1引用value,这叫做变量的间接引用。

    方法一:eval tmpvar=\$$var1 ;echo ${tmpvar}

    方法二:引用${!var1}       

技术分享图片

    

${ }引用变量的高级用法

标签:变量的高级用法   字符串切片   间接引用   

原文地址:http://blog.51cto.com/13570193/2090937

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!