print "\e[4m", $prompt, "\e[24m", "\e[1m";
似乎它在bash中不起作用:
[root@dev-test ~]$ echo "\e[4mhello world\e[24m\e[1m"
\e[4mhello world\e[24m\e[1m
答案 0 :(得分:7)
“\ e”表示用于VT100 escape sequences和类似的ESC。 Perl理解字符串中的"\e" escape sequence并将其解释为ESC字符(它也可以写成“\ 33”或“\ x1b”)。
要将ESC与echo一起使用,请提供-e
选项,以便处理这些转义:
echo -e "\e[4mhello world\e[24m\e[1m"
从两个字符“\ e”到单个ESC字符(值为0x1B)的转换由echo
本身(带-e
)完成 - shell不处理转义出现在引号中。上面echo
的链接还包含此类用法的示例。
快乐的编码。