在heredocs中着色,bash

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在heredocs中着色,bash相关的知识,希望对你有一定的参考价值。

如果我之前已经定义了这样的颜色变量:

txtred='e[1;31m'

我如何在heredoc中使用它:

    cat << EOM

    [colorcode here] USAGE:

EOM

我的意思是我应该用什么来代替[colorcode here]来将USAGE文本呈现为红色? ${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

以上是关于在heredocs中着色,bash的主要内容,如果未能解决你的问题,请参考以下文章

在 Bash 的 heredoc 中将新值推送到数组

使用没有 tty 的 heredoc 在 ssh 后获取 bash 提示

如何在bash脚本中执行存储在heredoc中的curl命令?

如何将 heredoc 写入 Bash 脚本中的文件?

Bash Heredoc 格式在 ) 末尾添加新行;

sh Bash heredoc的例子