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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了${ }引用变量的高级用法相关的知识,希望对你有一定的参考价值。

变量的高级用法--${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}       

技术分享图片

    

以上是关于${ }引用变量的高级用法的主要内容,如果未能解决你的问题,请参考以下文章

Ansible高级用法

Java高级特征

shell 变量的高级用法

Python print()函数高级用法

1.shell编程-变量的高级用法

跟着360架构师 学习Shell脚本编程 完整版