我正在嘗試製作一個shell腳本的正面或反面。有人可以解釋這一行嗎?For shell腳本中的循環 - 冒號和散列標記?
$ FILEDIR是一個包含文件的目錄。 F是從此命令返回的文件數組中的標記: files = $(find $ FILEDIR -type f | grep -v .rpmsave \ $ | grep -v .swp \ $)
令人困惑行在for循環內。
for f in $files; do
target=${f:${#FILEDIR}}
<<do some more stuff>>
done
我從來沒有見過冒號和散列在shell腳本for循環之前。我一直無法找到任何文件......有人可以嘗試啓發我嗎?我會很感激。
bash中的$ {f:$ {#FILEDIR}}給出的結果與更便攜的表達式'$ {f#$ FILEDIR}'相同。這兩個表達式都從'$ f'中刪除'$ FILEDIR'前綴。第二個表達式是首選。 – 2012-07-16 21:32:29