У меня есть if
условие в for
цикле по папкам в данном каталоге, проверка, существует ли определенный файл в каждой папке, и пропуск этой папки, если это не так. if
Условие дает мне слишком много аргументов об ошибке:
line 2: [: too many arguments
Это мой синтаксис:
for folders in path; do
if [ ! -e /sub/folder/file* ]; then
continue
fi
#do-stuff-to-file
done
Аналогичная проверка цикла для подкаталога ! -d
работает просто отлично ...
find
.Ответы:
Подстановочный знак является проблемой. Предположим, у вас есть файл A и файл B, он расширится до:
if [ ! -e /sub/folder/fileA /sub/folder/fileB ]; then
что синтаксически неверно.
источник