У меня есть условие 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 работает просто отлично ...

1 ответ1

0

Подстановочный знак является проблемой. Предположим, у вас есть файл A и файл B, он расширится до:

if [ ! -e /sub/folder/fileA /sub/folder/fileB ]; then

что синтаксически неверно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .