2014-06-06 63 views
0

我一個行表示:猛砸導出目錄頭

export WDIR_HEAD=${WDIR%%/*} 

其中WDIR是一個版本控制系統入門用戶輸入目錄。我意識到導出設置了一個環境變量,我的問題就是'%%/*'在這裏的作用。

我需要重寫這個在Windows機器上運行python。

回答

2

這是一種特殊形式的parameter expansion

$ {參數%字}
$ {參數%%字}

word被擴展,以產生一個模式,就像在文件名擴展。如果模式與擴展的參數值 的尾部分相匹配,則擴展結果是具有最短匹配模式('%'情況)或最長匹配模式('%%')的參數 的值'案例)刪除。如果參數是'@' 或'',模式刪除操作依次應用於每個位置 參數,並且擴展是結果列表。如果 參數是以'@'或''爲下標的數組變量,則 模式刪除操作將應用於 回合中的每個數組成員,並且展開是結果列表。

至於/*它匹配/或任何以它開頭的東西。見Pattern Matching

+0

爲了澄清我的具體情況,WDIR_HEAD將是'/ WDIR/.../...'目錄?我有點困惑,匹配'參數擴展值的尾部'是什麼意思。 – user2049004

+0

@ user2049004這將是所有與'/ *'匹配的WDIR值在刪除結束時。例如'WDIR =/A/B/C;回聲「$ {WDIR %%/*}」'沒有顯示任何內容,因爲一切都被刪除。 '%%'是貪婪的並且得到最長的匹配。如果只執行'$ {WDIR%/ *}',它只會刪除顯示'/ a/b'的'/ c'。 – konsolebox