Bash/MLT: как загрузить строку из файла и передать аргумент melt

Мне нужно выполнить следующую команду:

melt color:"#eeeeee"  -filter dynamictext:"this text"

"this text" это строка из title.txt файл.

Я прочитал файл с помощью этого метода:

while IFS='' read -r line || [[ -n "$line" ]]; do
     echo $line 
done < "title.txt"

Проблема в том, как сделать -filter dynamictext:"this text" в цикле bash в виде строки и, наконец, выполнить:

melt color:"#eeeeee" $string

Я использовал этот код, но пока безуспешно:

while IFS='' read -r line || [[ -n "$line" ]]; do
   string="$string -filter dynamictext:\"$line\""
done < "title.txt"

ошибка расплава: Failed to load "text"

title.txt содержит:

this text
second text
anothe text

1 ответ

Решение

Использовать массив; это именно тот случай использования, с которым они были представлены.

while IFS= read -r line; do
    options+=(-filter dynamictext:"$line")
done < title.txt
melt color:#eeeeee "${options[@]}"

исправлять title.txt так что это правильно заканчивается переводом строки.

Другие вопросы по тегам