linux shell 學習筆記(三)--shell編程基礎

1.   #!(shebang) shell腳本文件第一行的前兩個字符。#!後必須是解釋程序的絕對路徑。

2.#註釋標識符。

3.在運行一個shell腳本之前要確保shell腳本文件具有可執行權限,否則會“permission denied”。

例:chmod u+x /.a.sh

4.bash中的參數擴展

字符“$”會引導參數擴展。

基本的參數擴展:

$參數

${參數}   注意:參數名是大小寫敏感的。



間接參數擴展:

${!參數}



大小寫修改

${參數^}

${參數^^}

${參數,}

${參數,,}

${參數~}

${參數~~}

操作符“^”將參數值得第一個字符改爲大寫,操作符“,”將參數值的第一個字符改爲小寫。

當使用雙重模式(^^或,,)時,所有的字符都被轉換。





變量名擴展

${!前綴*}

${!前綴@}



字符串移除:

${參數#模式}//開頭匹配

${參數##模式}//開頭匹配

${參數%模式}//末尾匹配

${參數%%模式}//末尾匹配

操作符“#”和“%”表示將移除匹配指定模式的最短文本,而操作“##”和“%%”表示移除匹配指定模式的最長文本。


字符串搜索與替換:

${參數/模式/字符串}

${參數//模式/字符串}

${參數/模式}

${參數//模式}

 操作符“/”表示只替換一個匹配的字符串,而操作符“//”表示替換所有匹配的字符串。,如果沒有指定替換字符串STRING,那麼匹配的內容將被替換爲空字符串,即被刪除。


求字符串長度:

${#參數}


字符串擴展

${參數:OFFSET}

${參數:OFFSET:LENGTH}



使用默認值

${參數:-WORD}      如果參數爲未定義,或爲null時,這種模式會擴展WORD,否則將擴展參數。

${參數-WORD}          只有參數未定義是,纔會使用WORD。


指定默認值:

${參數:=WORD}

${參數=WORD}

這種模式與使用默認值的模式類似,但其區別在於此種模式不僅擴展了WORD,還將WORD賦值給參數,作爲參數的值。



使用替代值:

${參數:+WORD}

${參數+WORD}

如果參數是未定義的,或者其值爲空時,這種模式將不擴展任何內容。

如果參數是定義的,且其值不爲空,這種模式將擴展WORD,而不是擴展參數的值。














發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章