Я написал этот фрагмент кода для сканирования каталога на наличие файлов, более новых, чем эталонный файл, при исключении определенных подкаталогов.
#!/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 $ myExclude», он выглядит просто отлично, и, кроме того, скрипт ведет себя так, как задумано, если я заменю «$ myExclude» в последней строке выводом команды echo.Я предполагаю, что это какая-то ошибка цитирования / экранирования, но я не смог ее устранить.