如何在bash中捕获文本格式?

B S*_*ven 3 colors scripting bash shell-script escape-characters

以下 shell 脚本有效,但删除了由 生成的彩色格式rspec

#!/bin/bash
OUTPUT=`rspec`
echo "$OUTPUT"
Run Code Online (Sandbox Code Playgroud)

如何保存颜色?

Mic*_*zek 5

如果程序没有直接在 TTY 中运行,带有彩色输出的程序通常会禁用它,因为您可能将输出通过管道传输到日志文件或另一个需要纯文本的进程。通常,这些程序提供了一个手动强制启用颜色的开关,并且rspec有一个 ( --color),但由于某种原因,如果您不是在 TTY 中运行,它会忽略它,这确实是不寻常的行为。

我认为您唯一的选择是编辑rspec以取消该检查(参见def colorrspec-core-2.11.1/lib/rspec/core/configuration.rb),或者在一个程序中运行它,该程序会诱使它认为它具有 TTY,例如expect