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
так что это правильно заканчивается переводом строки.