2016-10-04 10 views
0

Мне нужно выполнить следующую команду:Bash/MLT: как загрузить строку из файла и переходя к расплавить аргумент

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" в цикле Баш как строку, а затем, наконец, выполнить:

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 
+0

Побег цитату: ' "$ строка -filter dynamictext: \" $ строки \ ""' – ceving

+0

благодарственное, но не работает .. видеовыхода: "это и генерирует сообщение об ошибке Не удалось загрузить "текст"" –

+0

HTTP : //stackoverflow.com/help/mcve – ceving

ответ

2

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

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

Fix title.txt так, чтобы он правильно заканчивается символом новой строки.