Я использую diff для форматирования строки, включающей переменные цвета tput, и не могу оценить эти переменные без использования команды "evil" eval
.
Команда, создающая строку:
output1="$(diff --changed-group-format="\${RED}%=\${CLS}" <(echo -e "${nstr1}") <(echo -e "${nstr2}")|tr -d '\n')"
и выводит это:
[String n${RED}â${CLS}m${RED}è™${CLS}]
Я смотрел и искал другие ответы, но ничего не работает, кроме:
eval echo "${output1}"
Из того, что я прочитал, у меня есть 3 варианта: eval
(плохо), непрямое расширение(лучше) и массивы(лучший). Все попытки обхода терпят неудачу. Я бы хотел использовать опцию массива, но я просто не понимаю, как это применимо здесь. Я что-то упускаю?
Я не думаю, что это актуально, но переменные и построение строк, отправляемых в diff, находятся в другом вопросе здесь.