【发布时间】:2016-03-27 00:47:59
【问题描述】:
我正在使用 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(bad)、间接扩展(更好) 和数组(best)。每次间接尝试都失败了。我很想使用数组选项,但我只是不知道它会如何应用在这里。我错过了什么吗?
我认为这无关紧要,但是发送到 diff 的变量和字符串的构造在另一个问题here 中。
【问题讨论】:
标签: arrays bash shell eval indirection