【发布时间】:2010-06-30 15:24:36
【问题描述】:
我编写这段代码是为了扫描目录中比参考文件更新的文件,同时排除特定的子目录。
#!/bin/bash
dateMarker="date.marker"
fileDate=$(date +%Y%m%d)
excludedDirs=('./foo/bar' './foo/baz' './bar/baz')
excludedDirsNum=${#excludedDirs[@]}
for (( i=0; i < $excludedDirsNum; i++)); do
myExcludes=${myExcludes}" ! -wholename '"${excludedDirs[${i}]}"*'"
done
find ./*/ -type f -newer $dateMarker $myExcludes > ${fileDate}.changed.files
但是,排除项只是被忽略了。当我“echo $myExcludes”时,它看起来很好,此外,如果我将最后一行中的“$myExcludes”替换为 echo 命令的输出,则脚本的行为也符合预期。我猜这是某种引用/转义错误,但我无法消除它。
【问题讨论】: