Есть рабочий скрипт на Bash который в цикле перебирает каталоги и если внутри этих каталогов не существует нужного, то создаёт его. Но так же есть список каталогов которые нужно игнорировать. Все работает, но не устраивает длинное условие или. Пробовал в цикле подставлять и так и этак но что-то не работает. Так как походу оно сравнивает только первое значение и в итоге выводит список всех подкаталогов вместе с теми которые нужно игнорировать.
Рабочий вариант скрипта.
function iterate() {
for entry in $@; do
if [[ $entry != *folder1* && $entry != *folder2* && $entry != *folder3* и так далее ]]; then
if [ ! -d “$entry/content” ]; then
echo $entry
mkdir -p $entry/content/folderA
fi
fi
done
}
iterate /folder/*
iterate /folder/*/*
Вот собственно вопрос как избавится от длинного if или или или.... и подставлять в условие значение из массива, а ещё лучше из файла blacklist?
Пробовал делать как-то так
BLIST = "
*folder1*
*folder2*
*folder3*
*folder4*
"
function iterate() {
for entry in $@; do
for BL in ${BLIST}; do
if [[ $entry != $BL ]]; then
if [ ! -d “$entry/content” ]; then
echo $entry
mkdir -p $entry/content/folderA
fi
fi
done
done
}
iterate /folder/*
iterate /folder/*/*
Выводит весь список вместе с запрещенными
PS: не могу сообразить как правильно сделать