格式1:${var#pattern}
把pattern與var變數值做比對時,是從var變數值的前面部分比對起,如果有符合之處,就刪除變數值中最短的部分,並傳回其餘的變數值。
[centos@~]$ var=/home/snoopy/dir/file
[centos@~]$ echo ${var#/*/}
--------------------------------------------
snoopy/dir/file
--------------------------------------------
格式2:${var##pattern}
把pattern與var變數值做比對時,是從var變數值的前面部分比對起,如果有符合之處,就刪除變數值中最長的部分,並傳回其餘的變數值。
[centos@~]$ var=/home/snoopy/dir/file
[centos@~]$ echo ${var##/*/}
--------------------------------------------
file
--------------------------------------------
格式3:${var%pattern}
把 pattern 與 var 變數值做比對時,是從 var 變數值的後面部分比對起,如果有符合之處,就刪除變數值中最短的部分,並傳回其餘的變數值。
[centos@~]$ var=/home/snoopy/dir/
[centos@~]$ echo ${var%/*/}
--------------------------------------------
/home/snoopy
--------------------------------------------
格式4:${var%%pattern}
把 pattern 與 var 變數值做比對時,是從 var 變數值的後面部分比對起,如果有符合之處,就刪除變數值中最長的部分,並傳回其餘的變數值。
[centos@~]$ var=/home/snoopy/test.tar.gz
[centos@~]$ echo ${var%%.*}
--------------------------------------------
/home/snoopy/test
--------------------------------------------
格式5:${var/pat1/pat2}
若變數值中含有pat1,就將第一個pat1用pat2作替代 。
[centos@~]$ var=/home/snoopy/snoopydir/snoopyfile
[centos@~]$ echo ${var/snoopy/boy}
--------------------------------------------
/home/boy/snoopydir/snoopyfile
--------------------------------------------
格式6:${var//pat1/pat2}
若變數值中含有 pat1,就將全部的pat1用pat2作替代 。
[centos@~]$ var=/home/snoopy/snoopydir/snoopyfile
[centos@~]$ echo ${var//snoopy/boy}
--------------------------------------------
/home/boy/boydir/boyfile
--------------------------------------------