${ }引用變量的高級用法

變量的高級用法--${var}是咱們在shell 腳本中最經常使用到的方法,其實${ }還有不少對變量的高級用法,咱們使用這些方法能夠給咱們在變量引用時帶來很大的方便。shell



目錄
ide

  • 字符串處理spa

  • 字符串切片字符串

  • 字符串變量賦值字符串處理

  • 變量間接引用it


1、字符串的處理
class

    ${var#*pattern}    # 從左到右,刪除字符串開頭至第一次出現的pattern部分 blob.png
變量

    ${var##*pattern}    # 從左到右,刪除字符串開頭至最後出現pattern部分
引用

blob.png 

    ${var%pattern*}    # 從右到左,刪除字符串結尾至第一次出現pattern的部分方法

    ${var%%pattern*}   # 從右到左,刪除字符串結尾至最後一次出現pattern的部分 

blob.png   


    ${var/pattern/substr}    # 查找var存儲的字符串中,第一個被pattern匹配到的字符替換爲substr

    ${var//pattern/substr}   # 查找var存儲的字符串中,全部被pattern匹配到的字符替換爲substr

    ${var/#pattern/substr}   # 查找var存儲的字符串中,開頭被pattern匹配到的字符替換爲substr

    ${var/%pattern/substr}   # 查找var存儲的字符串中,結尾被pattern匹配到的字符替換爲substr

blob.png


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

    ${var//pattern/}   # 查找var存儲的字符串中,刪除全部被pattern匹配到的字符

    ${var/#pattern/}   # 查找var存儲的字符串中,刪除開頭被pattern匹配到的字符

    ${var/%pattern/}   # 查找var存儲的字符串中,刪除結尾被pattern匹配到的字符

blob.png


    ${var^^}    # 將var存儲的字符串中的全部小寫替換爲大寫

    ${var,,}    # 將var存儲的字符串中的全部大寫替換爲小寫,注意是英文逗號

2、字符串切片

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

    ${var:offset}  # 從左到右,引用字符串從第offset(不包括offset)個字符開始到最後的部分

    ${var:offset:number}    # 從左到右,引用字符串從第offset(不包括offset)個字符開始,長度爲number的部分

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

    ${var: -length:number}  # 先從右到左取length個字符,在從前邊獲得的字符中取長度爲number的部分,一樣的注意length前的空格    

blob.png

3、字符串變量賦值

    ${var:-value}        # var爲空或未設置,則返回value;有值則返回var的值

blob.png

    ${var:+value}        # var爲空或未設置,則返回空值;有值則返回value

blob.png

    ${var:=value}        # var爲空或未設置,則返回value並賦值給value;有值則返回var的值

blob.png

    ${var:?error_info}   # var爲空或未設置,則返回error_info的信息;有值則返回var的值

blob.png

4、變量間接引用

    若是var1=var2,var2=value,直接用變量var1引用value,這叫作變量的間接引用。

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

    方法二:引用${!var1}       

blob.png

相關文章
相關標籤/搜索