echo "$(eval echo "\${$(cat in_file)}")" >! out_file
That's the best I've been able to do expanding color variables, eg. "
${red} " into their native " \e[31;1m " in a file. It's not a prize
winner as far as zsh obfuscation goes, still, can it be done more
simply? Also, I'd not be surprised to learn that there's one of those
ancient little utilities that already does that:
“Ancient utility” is called `sed`. Specifically you are able to substitute text with the result of the evaluation of the shell code:
echo '${red}red' | sed -r 's/\$\{(\w+)\}/zsh -c ''echo ${(%%):-%F{\1}}''/e'