Skip to content
0

ANSI

ANSI means American National Standards Institute

ANSI 转义码

从 terminal 获取 ANSI 码

例如下面的效果预览,可以在代码块中展示带有颜色的字符:

➜ unbuild -h
A unified javascript build system (unbuild v2.0.0)

USAGE unbuild [OPTIONS] [DIR]

ARGUMENTS

  DIR    The directory to build    

OPTIONS

       --stub    Stub build                        
     --minify    Minify build                      
  --sourcemap    Generate sourcemaps (experimental)

其原理就是 ansi 代码块,能够展示合法的 ANSI 格式字符,所以我们的目标就是得到原始的 ANSI 字符输出,上面的效果是通过下面的代码块渲染出来的

```ansi
➜ unbuild -h
A unified javascript build system (unbuild v2.0.0)

USAGE unbuild [OPTIONS] [DIR]

ARGUMENTS

  DIR    The directory to build    

OPTIONS

       --stub    Stub build                        
     --minify    Minify build                      
  --sourcemap    Generate sourcemaps (experimental)
```

为了得到原始的 ANSI 内容,我们可以将输出流重定向到文件,还是以 unbuild 这个工具为例:

$ FORCE_COLOR=true unbuild -h > output.ansi

重定向后是否能够是否能够输出带颜色的字符,取决于具体的 CLI 工具,但通常可以通过 FORCE_COLOR=true 设定,

多个命令的输出

也可以利用 macOs 系统下自带的 script 命令,开启监听

$ script
Script started, output file is typescript
$ unbuild -h
[22:54:53] A unified javascript build system (unbuild v2.0.0)

USAGE unbuild [OPTIONS] [DIR]

ARGUMENTS

  DIR    The directory to build    

OPTIONS

       --stub    Stub build                        
     --minify    Minify build                      
  --sourcemap    Generate sourcemaps (experimental)
# control + d (keyboard shortcuts)
$ ctrl^d
Script done, output file is typescript

会将内容输出到 typescript 文件中

stderr 流的输出

通过在命令中加上 2>&1 可以将错误流也输出到文件当中

$ FORCE_COLOR=true unbuild -h > output.ansi 2>&1

Released under the MIT License.