1. 程式人生 > >${ }引用變量的高級用法

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

變量的高級用法 字符串切片 間接引用

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

技術分享圖片


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