Как выполнить cmd с динамическими параметрами / аргументами в bash-скрипте - PullRequest
0 голосов
/ 08 февраля 2019

Я использую эту строку в bash-скрипте для выполнения команды с определенным количеством опций / аргументов

message=$(mp3wrap "$file_out.mp3" "$file_in_1" "file_in_2" 2>&1 && echo "Success")

Как я могу изменить эту строку для динамического диапазона опций из массива?

Например, мне нужно вызвать «mp3wrap» с 2, 4 или 6 «входными файлами» из myarray.Если я объединяю имена файлов с пробелами в переменной, он интерпретируется как один из вариантов и завершается ошибкой.

Также важно иметь имена файлов в двойных кавычках для имен файлов с пробелами.

1 Ответ

0 голосов
/ 09 февраля 2019

Это именно то, для чего были созданы массивы.

files=(file_in_1 file_in_2 file_in_3)
message=$(mp3wrap file_out.mp3 "${files[@]}" 2>&1 && echo "Success")
...