${#var}:返回字符串變量var的長度ide
${var:offset}:返回字符串變量var中從第offset個字符後(不包括第 offset個字符)的字符開始,到最後的部分,offset的取值在0到${#var}-1之間code
${var:offset:number}:返回字符串變量var中從第offset個字符後(不包括第offset個字符)的字符開始,長度爲number的部分字符串
${var:-length}:取字符串的最右側幾個字符
注意冒號後必須有個空格it
${var: offset: -length}: 從最左側跳過offset字符,一直向右取到距離最右側length個字符以前的內容 class
${var: -length: -offset}: 先從最右側向左取到length個字符開始,再向右取到距離最右側offset個字符之間的內容變量
注意:-length前空格 基於模式取字串 ${var#*word}:其中word能夠是指定的任意字符 功能:自左而右,查找var變量所存儲的字符串中,第一次出現的word,刪除字符串開頭至第一次出現word字符串(含)之間的全部字串 ${var##*word}:同上, 含貪婪模式,不一樣的是,刪除的是字符串開頭至最後一次由word指定的字符串之間的全部內容 eg: file="var/log/messages" ${file#*/}:log/messages ${file##*/}:messages
${var%word*}:其中word能夠是指定的任意字符file
功能:自右而左,查找var變量所存儲的字符串中,第一次出現的word,刪除字符串開頭至第一次出現word字符串(含)之間的全部字串 ${var%%word*}:同上, 含貪婪模式,不一樣的是,刪除的是字符串開頭至最後一次由word指定的字符串之間的全部內容 查找替換: ${var/pattern/substr}:查找var所表示的字符串中,第一次被pattern所匹配的字符串,以substr替換之 ${var//pattern/substr}查找var所表示的字符串中,全部能被pattern所匹配的字符串,以substr替換之 ${var/#pattern/substr}:查找var所表示的字符串中,行首被pattern所匹配的字符串,以substr替換之 ${var/%pattern/substr}查找var所表示的字符串中,行尾被pattern所匹配的字符串,以substr替換之