连接传递到控制序列的字符串

连接传递到控制序列的字符串

我有一个echo在 Bash 终端中打印蓝色条的调用:

echo $'\e[48;2;0;0;255m                \e[0m'

我想向它传递一些变量,例如(这不起作用):

rgb_blue=42
echo $'\e[48;2;0;0;"$rgb_blue"m                \e[0m

有什么办法可以做到这一点吗?我尝试了在 Bash 中连接字符串的常用方法,但没有一个起作用。

答案1

变量不会在单引号内展开。但你需要$' '颜色。所以你需要将两者结合起来。像这样的东西应该有效:

echo $'\e[48;2;0;0;'"${rgb_blue}"$'m                \e[0m'

或者,可能更简单:

printf '\e[48;2;0;0;%dm                \e[0m\n' "$rgb_blue"

相关内容