歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Linux Shell參數替換

Linux Shell參數替換

日期:2017/3/1 9:56:39   编辑: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的值的子字符串。

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

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

${!prefix*}

${!prefix@}

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

${!name[@]}

${!name[*]}

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

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

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

${parameter#word}

${parameter##word}

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

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

${parameter%word}

${parameter%%word}

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

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

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

${parameter/pattern/string}

${parameter//pattern/string}

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

/表示只替換一次

//表示全部替換

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

Copyright © Linux教程網 All Rights Reserved