为什么只能用粗体打印某些字符?

时间:2014-04-18 00:58:12

标签: bash printing terminal ansi-colors

我一直在制作一个程序,在某些情况下在终端中打印粗体文本,但我一直在想,为什么某些字符如*,#和〜不是用粗体打印的?另外,无论如何要让它们以粗体印刷。我已经知道如何使用转义序列来做到这一点,但还有其他方法吗?这是一个代码示例:

#This isn't bold:  
print "\033[94m####\033[1m"

#But this is:
print "\033[94mHello\033[1m"

编辑:我很蠢。上面的代码应该是这样的:

print "\033[94;1m####\033[0m"

1 个答案:

答案 0 :(得分:1)

您正在文本后打印粗体SGR命令。您必须在文本之前打印粗体命令才能生效:

bold='\033[1m'
blue='\033[94m'
normal='\033[m'

print bold+'Hello'+normal  # This prints in bold
print bold+'###'+normal    # So does this

参考: