Echo命令的语法- Bash中的ANSI颜色样式



在Mac上运行Bash 3.2。在终端中输入以下echo命令,它返回绿色背景和蓝色字体的文本:

echo "33[34;42mThis is colored.33[0m This is not colored."

我想在bash脚本中捕获此命令,但无法使其正确显示。

对于bash来说非常新,下面是我目前发现的内容:

  • 我知道单引号''意味着按字面意思显示它,这不是我想要的
  • 它需要在var=$(command)格式,使解释器知道运行它作为一个命令
  • 然后通过输入echo $var 显示该变量

那么在bash脚本中如何正确地编写这个命令呢?作为bash初学者,还有其他重要的事情我应该知道吗?谢谢。

my.sh

#!/bin/bash
teepee=$(echo "33[34;42mThis is colored.33[0m This is not colored.")
echo $teepee

经过一番挖掘,我需要将-e选项添加到echo命令中,从而启用反斜杠解释(在这里找到更多信息)

#!/bin/bash
teepee=$(echo -e "33[34;42mThis is colored.33[0m This is not colored.")
echo $teepee #works as expected

最新更新