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
[90mA unified javascript build system (unbuild v2.0.0)[39m
[4m[1mUSAGE[22m[24m [36munbuild [OPTIONS] [DIR][39m
[4m[1mARGUMENTS[22m[24m
[36mDIR[39m The directory to build
[4m[1mOPTIONS[22m[24m
[36m--stub[39m Stub build
[36m--minify[39m Minify build
[36m--sourcemap[39m 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