我正在编写各种实用工具,并且很喜欢彩色文本。没有什么花哨的,只是使用转义序列。我创建了一个简单的类,其中包含pprint (msg,color)函数。在找到代码here后,我很容易就让它正常工作了。
我的问题是我应该能够在打印后关闭颜色。例如,假设用户运行我的程序将几乎所有内容都以默认终端颜色打印,但出现错误,我想以红色打印错误。我在我的错误消息前加上 '\033[0;32m',消息是红色的。不幸的是,在更改之前,所有文本都是红色的。因为我知道消息应该是什么颜色,所以在程序运行时通常没问题。但是,颜色在我的程序结束后仍然保留。基本上,我想在程序启动时读取当前颜色,并在完成后还原它。就像脚本在退出时恢复pwd一样。
如何读取当前的转义序列?
系统: Red Hat 5.x Bash Python 2.3
感谢您的帮助。
.sh
脚本与Git Bash结合使用,有许多有用的Linux工具我无法方便地使用。其中之一是tput
。当然,我可以运行cygwin,甚至只需将tput可执行文件放入我的Git目录中,但是当转义序列完美地工作时,这似乎过于复杂。说实话,对我来说,$(tput setaf 6)
并不比'\e[00;36m'
更难懂。它们还会在初始化颜色常量时分叉另一个进程15次。 - Dan Bechard