各平台各语言的终端颜色控制(可用于log)

xiaoxiao2021-02-28  139

1. 简介

在使用putty、secureCRT、XShell等终端仿真器连接linux系统时,vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性。

通常我们可以使用echo命令加-e选项输出各种颜色的文本,例如:echo -e "\033[31mRed Text\033[0m",可以输出红色的字体“Red Text”。其中:”\033[31m”和”\033[0m”是ANSI转义序列(ANSI escape code/sequence),它控制文本输出的格式、颜色等。

2. 转义序列及参数

键盘左上角Esc键对应的ascii码为27,写为八进制是 033, 十六进制是 x1b,所以上面的\033和\x1b,\e效果一样

参数的话分为0-8,30-37,40-47,不同参数之间用分号分开 35其实是 magenta, 36是cyan 写完参数用m 表示转义结束

3. 不同平台语言

python(linux和window都可以) a.python

print("\033[1;31m hello \033[0m")

python a.python

C或C++ (linux)

#include <stdio.h> printf("\033[1;31m hello \033[0m") #include <iostream> std::cout<<"\033[1;31m"<<" hello "<<"\033[0m";

shell (linux)

echo -e "\033[1;31m hello \033[0m"

windows命令提示符CMD 命令提示符(CMD)下调整整屏颜色输出可使用color命令,格式为:color BF 其中B和F表示颜色属性(B背景色,F前景色),属性值为一个十六进制数字(0-F)。各属性值与颜色对应的关系如下: 例如,要设置命令提示符窗口“背景为黑(0),前景为白(7)”可执行color 07。

win32 console 由于win32控制台不支持ANSI转义序列,因此要让win32控制台输出颜色文本相对复杂一些

#include<windows.h> WORD f_color=FOREGROUND_RED; HANDLE hdl = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hdl, f_color | FOREGROUND_INTENSITY) printf("hello");

更多请参考:Console Screen Buffers

转载请注明原文地址: https://www.6miu.com/read-18073.html

最新回复(0)