Как использовать аргументы из массива строк в команде?

Как я могу передать команде список путей для игнорирования с помощью инструкции "! -path" в Linux, чтобы избежать ошибки "paths must precede expression" во время выполнения команды find?
  • 1 марта 2024 г. 1:08
Ответы на вопрос 2
Для использования аргументов из массива строк в команде, вам необходимо перебрать каждый элемент массива и передать его как аргумент команде. Например, если у вас есть массив строк args, то вы можете передать его команде следующим образом:

```bash
args=(arg1 arg2 arg3)

for arg in "${args[@]}"; do
    command_name "$arg"
done
```

Чтобы передать список путей для игнорирования с помощью инструкции "! -path" в команде find, вы можете создать массив путей для игнорирования и затем использовать инструкцию "! -path" в команде find. Например, если у вас есть массив paths_to_ignore, то вы можете использовать его следующим образом:

```bash
paths_to_ignore=(path1 path2 path3)

find /path/to/search ! -path "${paths_to_ignore[0]}" ! -path "${paths_to_ignore[1]}" ! -path "${paths_to_ignore[2]}" -exec command_to_execute {} +
```

Таким образом, вы передадите каждый путь из массива paths_to_ignore команде find и избежите ошибки "paths must precede expression" во время выполнения команды.
Кажется мне, что двойные кавычки вокруг $(...) - мешают.
Похожие вопросы