變數值樣式比對 (參考http://www.suse.url.tw/sles10/lesson10.htm)
另外一種字串運算符的型態,是比對指定的樣式 ( pattern ) 跟變數值,然後才根據比對的結果來決定傳回的變數值。
比對算符 | 代 表 意 義 |
${var#pattern} | 把 pattern 與 var 變數值做比對時,是從 var 變數值的前面部分比對起,如果有符合之處,就刪除變數值中最短的部分,並傳回其餘的變數值。
suse:~ # var=/home/barry/dir/file suse:~ # echo ${var#/*/} barry/dir/file |
|
${var##pattern} | 把 pattern 與 var 變數值做比對時,是從 var 變數值的前面部分比對起,如果有符合之處,就刪除變數值中最長的部分,並傳回其餘的變數值。
suse:~ # var=/home/barry/dir/file suse:~ # echo ${var##/*/} file |
|
${var%pattern} | 把 pattern 與 var 變數值做比對時,是從 var 變數值的後面部分比對起,如果有符合之處,就刪除變數值中最短的部分,並傳回其餘的變數值。
suse:~ # var=/home/barry/dir/ suse:~ # echo ${var%/*/} /home/barry |
|
${var%%pattern} | 把 pattern 與 var 變數值做比對時,是從 var 變數值的後面部分比對起,如果有符合之處,就刪除變數值中最長的部分,並傳回其餘的變數值。
suse:~ # var=/home/barry/test.tar.gz suse:~ # echo ${var%%.*} /home/barry/test |
|
${var/pat1/pat2} | 若變數值中含有 pat1,就將第一個 pat1用 pat2 作替代 。
suse:~ # var=/home/barry/barrydir/barryfile suse:~ # echo ${var/barry/mary} /home/mary/barrydir/barryfile |
|
${var//pat1/pat2} | 若變數值中含有 pat1,就將全部的 pat1用 pat2 作替代 。
suse:~ # var=/home/barry/barrydir/barryfile suse:~ # echo ${var//barry/mary} /home/mary/marydir/maryfile
|
|
還是搞不大懂...
沒有留言:
張貼留言