[英]How to dynamically change text color in a linux terminal using PuTTy?
[英]C code changes terminal text color; how to restore defaults? Linux
我在Linux上運行了一個C文件。 它以紅色(失敗)打印一些線條,以綠色(通過)打印一些線條。 正如您所料,它在printf語句中使用轉義碼,如下所示:
#define BLACK "\033[22;30m"
#define GREEN "\033[22;31m"
printf(GREEN "this will show up green" BLACK "\n");
如果最后的BLACK不存在,終端文本將繼續為所有內容為綠色。 如果你沒有抓住它,那對於具有非黑色背景的終端窗口來說沒問題,但是否則你最終會得到黑底黑字。 不好! 運行程序有這個問題,捕獲文本文件中的輸出,然后使用“更多”或“更少”查看文件也是如此。
是否有代碼恢復默認值而不是在printf語句的末尾指定顏色? 這需要在C中,但我有興趣閱讀其他方法。
更新:謝謝大家。 您的回復幫助我在其他地方找到更有用的信息。 我更新了我的宏如下(注意31是紅色的,我修正了下面的拼寫錯誤):
#define RESET_COLOR "\e[m"
#define MAKE_GREEN "\e[32m"
printf(MAKE_GREEN "this will show up green" RESET_COLOR "\n");
我發現以下鏈接有助於理解這些代碼的工作原理:
http://www.phwinfo.com/forum/comp-unix-shell/450861-bash-shell-escapes-not-working-via-putty-ssh.html解釋了這些轉義序列的作用,並在可移植性時使用ncurses需要。
http://www.linuxselfhelp.com/howtos/Bash-Prompt/Bash-Prompt-HOWTO-6.html
http://bluesock.org/~willg/dev/ansi.html顯示更多的轉義序列; 有用的了解大局
嘗試使用:
#define RESETCOLOR "\033[0m"
這應該將其重置為默認值。
有關這些終端代碼的更多信息,請訪問: http : //en.wikipedia.org/wiki/ANSI_escape_code
"\033[0m"
在終端中鍵入reset
。
Linux和OSX中有一個名為reset的二進制文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.