1. 完整呈現(xiàn) vbird 這個變數(shù)的內(nèi)容;
[root@linux ~]# vbird="/home/vbird/testing/testing.x.sh"
[root@linux ~]# echo ${vbird}
/home/vbird/testing/testing.x.sh
2. 在 vbird 變數(shù)中,從最前面開始比對,若開頭為 / ,則刪除兩個 /
之間的所有資料,亦即 /*/
[root@linux ~]# echo ${vbird##/*/}
testing.x.sh <==刪除了 /home/vbird/testing/
[root@linux ~]# echo ${vbird#/*/}
vbird/testing/testing.x.sh <==僅刪除 /home/ 而已
# 這兩個小例子有趣了~變數(shù)名稱后面如果接了兩個 ## ,表示在 ##
# 后面的字串取‘最長的’那一段;如果僅有一個 # ,表示取‘最小的那一段’喔!
3. 呈上題,如果是從后面開始,刪除 /* 呢?
[root@linux ~]# echo ${vbird%%/*/}
/home/vbird/testing/testing.x.sh <==都沒被刪除
[root@linux ~]# echo ${vbird%%/*}
<==被刪除光了!
[root@linux ~]# echo ${vbird%/*}
/home/vbird/testing <==只刪除 /testing.x.sh 部分
# 這個例子當中需要特別注意,那個 % 比對的是‘最后面那個字元’的意思,
# 所以啰,第一個方式當然不對~因為 vbird 這個變數(shù)的內(nèi)容最后面是 h 而不是 / 啊!
# 至于 %%/* 則是刪除‘最長的那個 /* ’,當然就是全部喔!而 %/* 則是最短的那個!
4. 將 vbird 變數(shù)中的 testing 取代為 TEST
[root@linux ~]# echo ${vbird/testing/TEST}
/home/vbird/TEST/testing.x.sh
[root@linux ~]# echo ${vbird//testing/TEST}
/home/vbird/TEST/TEST.x.sh
# 如果變數(shù)后面接的是 / 時,那么表示后面是進行‘取代’的工作~而且僅取代‘第一個’
# 但如果是 // ,則表示全部的字串都取代??!
|