我遇到了以下问题:
在 bash 上我设置:
COLOR="0;31" #red color
如果我做
echo -e "\e[00;31mRED\e[00m"
我明白了
RED
<- 终端上显示为红色
但是如果我这样做
echo -e "\e[0$COLORm \RED\e[00m"
我刚刚得到
RED
<- 没有颜色
如何使用颜色和$COLOR
变量进行打印?
答案1
bash 对变量一无所知COLORm
。但以下示例将起作用
COLOR="0;31m"
echo -e "\e[0$COLOR \RED\e[0m"
答案2
使用${var}
– 例如\e[0;${COLOR}m
– 将变量名称与周围文本分开。
或者,使用printf "\e[0;%sm %s \e[m\n" "$COLOR" "RED"
(旁注:\e[00;31m
没有必要;\e[0;31m
或者只要\e[;31m
是就可以。同样适用于\e[00m
)
答案3
使用花括号隔离变量名,并消除变量名与某些文字字符相邻(例如 ${hello}world)或其他棘手位置的表达式中的歧义: