我正在尝试制作一个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