Answers:
最兼容的方式是使用tput
发现正确的序列发送给终端:
bold=$(tput bold)
normal=$(tput sgr0)
那么您可以使用变量$bold
并$normal
设置格式:
echo "this is ${bold}bold${normal} but this isn't"
给
这是粗体,但不是
tput smul
tput
是一个很棒的命令,其中包含许多命令,可用于许多不同的任务。
motd
文件。在该实例中,如何/在何处定义$bold
和$normal
变量?
为了在您的字符串上应用样式,您可以使用以下命令:
echo -e '\033[1mYOUR_STRING\033[0m'
说明:
-e
选项意味着将对转义(反斜杠)字符串进行解释可能的整数是:
[0m
提供的功能,这很好地解释了这一点
\033[0m
3
-斜体字,至少在
我假设bash在与vt100兼容的终端上运行,在该终端上用户没有明确关闭对格式的支持。
首先,echo
使用-e
选项打开对特殊字符的支持。稍后,使用ansi转义序列ESC[1m
,例如:
echo -e "\033[1mSome Text"
例如,此处提供有关ansi转义序列的更多信息:ascii-table.com/ansi-escape-sequences-vt-100.php
echo -e "\033[1mSome Text\033[0m"
否则终端的以下几行也将以粗体显示
\033
您可以使用,\e
例如echo -e "\e[1msome text\e[0m"
理论上是这样的:
# BOLD
$ echo -e "\033[1mThis is a BOLD line\033[0m"
This is a BOLD line
# Using tput
tput bold
echo "This" #BOLD
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL
# UNDERLINE
$ echo -e "\033[4mThis is a underlined line.\033[0m"
This is a underlined line.
但实际上,它可能会被解释为“高强度”颜色。
(来源:http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html)