这连天bee升级到了1.5版本,在执行bee version的时候会输出一个有颜色的BEE的logo,很多人觉着很神奇,其实这个就是ANSI颜色代码。
其实在Linux,我们编写C语言轻易可以实现这个效果。
具体的书写格式如下:
格式:\033[显示方式;前景色;背景色m
说明:
前景色 背景色 颜色
---------------------------------------
30 40 黑色
31 41 红色
32 42 绿色
33 43 黃色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
显示方式 意义
-------------------------
0 终端默认设置
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见
例子:
\033[1;31;40m
\033[0m
详细资料,请参看https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
但是在windows下就比较难做到。
The Win32 console did not support ANSI escape sequences at all until Windows 10 "Threshold 2".[10] Some replacements or additions for the console window such as JP Software's TCC (formerly 4NT), Michael J. Mefford's ANSI.COM, Jason Hood's ANSICON[11] and Maximus5's ConEmu do interpret ANSI escape sequences printed by programs.
从这段可以看出win 10才支持。
内事不明问百度,外事不清问谷歌。搜索到https://github.com/fatih/color这个神器。
go get github.com/fatih/color
下面我就模仿bee写一个小程序。
package main
import (
"fmt"
"github.com/fatih/color"
)
func main() {
beeStrUp := `______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v1.5.0
`
beeStrDown := `
├── Beego : 1.7.0
├── GoVersion : go1.6.2
├── GOOS : windows
├── GOARCH : amd64
├── NumCPU : 8
├── GOPATH : x:\Eagle\go
├── GOROOT : y:\Go\
├── Compiler : gc
└── Date : Friday, 19 Aug 2016`
color.Set(color.FgMagenta, color.Bold)
defer color.Unset()
fmt.Println(beeStrUp)
color.Set(color.FgGreen, color.Bold)
fmt.Println(beeStrDown)
}
运行结果:
有疑问加站长微信联系(非本文作者)