输出:
echo -e "\e[31mHello World\e[0m"
是
Hello World (red color)
所以我想把\e[31m
放到变量:
REDCOLOR="\e[31m"
并将其用作:
echo -e "$REDCOLORusing red color"
答案 0 :(得分:2)
请改用${REDCOLOR}
。在你写的时候,bash也试着看看名为REDCOLORusing
的变量而不是REDCOLOR
答案 1 :(得分:2)
正确的做法是使用tput
来查询系统的相应转义序列:
red=$(tput setaf 1)
green=$(tput setaf 2)
这将返回要发送到终端的文字转义序列,而不是描述它们的反斜杠转义序列。此后,您可以使用(没有-e
参数):
echo "${red}using red${green}using green"
请参阅BashFAQ #37。
答案 2 :(得分:0)
red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`
echo "${red}red text ${green}green text${reset}"