技术频道


cli 控制台颜色控制

Go 终端颜色代码示例


package main

import (
  "fmt"
  "github.com/fatih/color"
)

func main() {
  // 使用 color 包设置颜色
  red := color.New(color.FgRed)
  green := color.New(color.FgGreen)
  yellow := color.New(color.FgYellow)

  // 在终端输出彩色文字
  red.Println("This is red text.")
  green.Println("This is green text.")
  yellow.Println("This is yellow text.")

  // 使用样式和颜色组合
  boldGreen := color.New(color.FgGreen, color.Bold)
  boldGreen.Println("This is bold green text.")
}


go run

PHP 终端颜色代码示例


<?php

// 定义彩色文字的 ANSI 转义码
$red    = "\033[31m";
$green  = "\033[32m";
$yellow = "\033[33m";
$reset  = "\033[0m";

// 在控制台输出彩色文字
echo $red    . "This is red text."    . $reset . PHP_EOL;
echo $green  . "This is green text."  . $reset . PHP_EOL;
echo $yellow . "This is yellow text." . $reset . PHP_EOL;

ANSI 转义码


ANSI 转义码是一种用于在文本中表示控制字符或控制序列的标准。在这里,\033ESC(Escape) 字符的八进制表示,而 [31m 是表示颜色属性的部分。

具体来说,\033ASCII 字符集中的 ESC(Escape) 字符,它通常用于引入控制序列。在这里,它表示一个开始控制序列。后面的 [31mANSI 转义码的一部分,其中 [ 表示开始一个控制码,31 是表示红色文本的颜色代码,m 表示该控制序列的结束。

ANSI 转义码中,颜色代码的一般格式是 \033[ 属性码 m,其中属性码表示不同的文本属性,如颜色、样式等。例如:

\033[31m 表示红色文本
\033[32m 表示绿色文本
\033[33m 表示黄色文本

在这些例子中,\033 是开始控制序列的标志,[31m 是表示颜色属性的部分。

为了更好地理解,你可以将 \033[31m 想象成一个控制命令,告诉终端在接下来的文本中使用红色。当你输出这个命令后,后续的文本将以红色显示,直到遇到重置命令,例如 \033[0m,以恢复默认的文本属性。

可以使用不同的颜色代码和属性码来实现各种颜色和效果。以下是一些常用的颜色和属性码示例:

字体前景色


\033[30m - 黑色
\033[31m - 红色
\033[32m - 绿色
\033[33m - 黄色
\033[34m - 蓝色
\033[35m - 紫色
\033[36m - 青色
\033[37m - 白色

字体背景色


\033[30m - 黑色
\033[31m - 红色
\033[32m - 绿色
\033[33m - 黄色
\033[34m - 蓝色
\033[35m - 紫色
\033[36m - 青色
\033[37m - 白色

字体文本属性


\033[1m - 粗体(高亮)
\033[2m - 淡化
\033[4m - 下划线
\033[5m - 闪烁
\033[7m - 反显
\033[8m - 不可见(隐藏)

如,如果你想要输出高亮绿色的文本,可以使用 \033[1;32m,其中 1 表示粗体(高亮),32 表示绿色。在输出完成后,使用 \033[0m 来重置文本属性,以确保后续文本不受影响。

注意,具体的效果可能会因终端的支持程度而有所不同。在使用这些代码之前,最好在目标终端上进行测试。

cli 扩展阅读:



发表评论