Linux Shell參數替換


Bash中的$符號的作用是參數替換,將參數名替換為參數所代表的值。對於$來說,大括號是可選的,即$A和${A}代表同一個參數。

${}帶冒號的有下面幾種表達式:

${parameter:-word}

如果parameter為null或者未設置,整個參數替換表達式值為word

${parameter:=word}

如果parameter為null或者未設置,整個參數替換表達式值為word,並且parameter參數值設置為word

${parameter:?word}

如果parameter為null或者未設置,則打印出錯誤信息。否則,整個參數替換表達式值為$parameter

${parameter:+word}

如果parameter不為null或者未設置,則整個參數替換表達式值為word

${parameter:offset}

${parameter:offset:length}

parameter的值的子字符串。

可以理解下下面這幾個例子:

Image(2)

${}帶!有下面幾種表達式:

${!prefix*}

${!prefix@}

將帶有前綴為prefix的參數名打印出來

${!name[@]}

${!name[*]}

這個是針對name數組的,打印出來name數組有哪些下標

可以理解下下面這幾個例子:

Image(3)

${}帶正則匹配的幾種表達式:

${parameter#word}

${parameter##word}

從頭開始掃描word,將匹配word正則表達的字符過濾掉

#為最短匹配,##為最長匹配

${parameter%word}

${parameter%%word}

從尾開始掃描word,將匹配word正則表達式的字符過濾掉

%為最短匹配,%%為最長匹配

可以理解下面這幾個例子:

Image(4)

${parameter/pattern/string}

${parameter//pattern/string}

將parameter對應值的pattern字符串替換成為string字符串

/表示只替換一次

//表示全部替換

可以理解下面這幾個例子:

Image(5)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM