在終端下打印不同顏色的字體,具體說明見:http://blog.csdn.net/gxut555/article/details/7913591
自己用golang實現一個,除了在MAC下顯示不出效果來,其他端上還算正常了,效果所示:
代碼如下(見:https://github.com/liuyongshuai/goColorTerm):
/* * @author Liu Yongshuai<liuyongshuai@hotmail.com> * @package tofuutils * @date 2018-01-25 19:19 */ package tofuutils import ( "fmt" "strings" ) //綠色字體,modifier里,第一個控制閃爍,第二個控制下划線 func Green(str string, modifier ...interface{}) string { return cliColorRender(str, 32, 0, modifier...) } //淡綠 func LightGreen(str string, modifier ...interface{}) string { return cliColorRender(str, 32, 1, modifier...) } //青色/藍綠色 func Cyan(str string, modifier ...interface{}) string { return cliColorRender(str, 36, 0, modifier...) } //淡青色 func LightCyan(str string, modifier ...interface{}) string { return cliColorRender(str, 36, 1, modifier...) } //紅字體 func Red(str string, modifier ...interface{}) string { return cliColorRender(str, 31, 0, modifier...) } //淡紅色 func LightRed(str string, modifier ...interface{}) string { return cliColorRender(str, 31, 1, modifier...) } //黃色字體 func Yellow(str string, modifier ...interface{}) string { return cliColorRender(str, 33, 0, modifier...) } //黑色 func Black(str string, modifier ...interface{}) string { return cliColorRender(str, 30, 0, modifier...) } //深灰色 func DarkGray(str string, modifier ...interface{}) string { return cliColorRender(str, 30, 1, modifier...) } //淺灰色 func LightGray(str string, modifier ...interface{}) string { return cliColorRender(str, 37, 0, modifier...) } //白色 func White(str string, modifier ...interface{}) string { return cliColorRender(str, 37, 1, modifier...) } //藍色 func Blue(str string, modifier ...interface{}) string { return cliColorRender(str, 34, 0, modifier...) } //淡藍 func LightBlue(str string, modifier ...interface{}) string { return cliColorRender(str, 34, 1, modifier...) } //紫色 func Purple(str string, modifier ...interface{}) string { return cliColorRender(str, 35, 0, modifier...) } //淡紫色 func LightPurple(str string, modifier ...interface{}) string { return cliColorRender(str, 35, 1, modifier...) } //棕色 func Brown(str string, modifier ...interface{}) string { return cliColorRender(str, 33, 0, modifier...) } func cliColorRender(str string, color int, weight int, extraArgs ...interface{}) string { //閃爍效果 isBlink := 0 if len(extraArgs) > 0 { isBlink, _ = MakeItemElem(extraArgs[0]).ToInt() } //下划線效果 isUnderLine := 0 if len(extraArgs) > 1 { isUnderLine, _ = MakeItemElem(extraArgs[1]).ToInt() } var mo []string if isBlink > 0 { mo = append(mo, "05") } if isUnderLine > 0 { mo = append(mo, "04") } if weight > 0 { mo = append(mo, fmt.Sprintf("%d", weight)) } if len(mo) <= 0 { mo = append(mo, "0") } return fmt.Sprintf("\033[%s;%dm"+str+"\033[0m", strings.Join(mo, ";"), color) }
測試效果:
package tofuutils import ( "testing" "fmt" ) func TestCliColor(t *testing.T) { fmt.Println(Green("閃爍字體:Green", 1, 1)) fmt.Println(LightGreen("閃爍字體:LightGreen", 1)) fmt.Println(Cyan("閃爍字體:Cyan", 1)) fmt.Println(LightCyan("閃爍字體:LightCyan", 1)) fmt.Println(Red("閃爍字體:Red", 1)) fmt.Println(LightRed("閃爍字體:LightRed", 1)) fmt.Println(Yellow("閃爍字體:Yellow", 1)) fmt.Println(Black("閃爍字體:Black", 1)) fmt.Println(DarkGray("閃爍字體:DarkGray", 1)) fmt.Println(LightGray("閃爍字體:LightGray", 1)) fmt.Println(White("閃爍字體:White", 1)) fmt.Println(Blue("閃爍字體:Blue", 1)) fmt.Println(LightBlue("閃爍字體:LightBlue", 1)) fmt.Println(Purple("閃爍字體:Purple", 1)) fmt.Println(LightPurple("閃爍字體:LightPurple", 1)) fmt.Println(Brown("閃爍字體:Brown", 1)) fmt.Println(Green("字體:Green")) fmt.Println(LightGreen("字體:LightGreen")) fmt.Println(Cyan("字體:Cyan")) fmt.Println(LightCyan("字體:LightCyan")) fmt.Println(Red("字體:Red")) fmt.Println(LightRed("字體:LightRed")) fmt.Println(Yellow("字體:Yellow")) fmt.Println(Black("字體:Black")) fmt.Println(DarkGray("字體:DarkGray")) fmt.Println(LightGray("字體:LightGray")) fmt.Println(White("字體:White")) fmt.Println(Blue("字體:Blue")) fmt.Println(LightBlue("字體:LightBlue")) fmt.Println(Purple("字體:Purple")) fmt.Println(LightPurple("字體:LightPurple")) fmt.Println(Brown("字體:Brown")) fmt.Println(Blue("字體:Blue", 1, 1)) }