如果我之前像这样定义了颜色变量:
txtred='\e[1;31m'
我将如何在 heredoc 中使用它:
cat << EOM
[colorcode here] USAGE:
EOM
我的意思是我应该写什么来代替
[colorcode here]
来呈现该用法文字红色?
${txtred}
不起作用,因为这是我在整个过程中使用的bash 脚本,在 heredoc 之外
最佳答案
您需要一些东西来解释 cat
不会做的转义序列。这就是为什么您需要 echo -e
而不仅仅是 echo
才能使其正常工作。
cat << EOM
$(echo -e "${txtred} USAGE:")
EOM
作品
但是你也不能通过使用
textred=$(tput setaf 1)
来使用转义序列,然后直接使用变量。textred=$(tput setaf 1)
cat <<EOM
${textred}USAGE:
EOM