保留脚本输出的颜色以供以后查看

保留脚本输出的颜色以供以后查看

我想保存脚本的输出,以便稍后查看。但是,当我将输出保存到文件 ( script > some/file) 并稍后查看时,没有颜色,即使script最初以多种颜色输出以使输出更易于阅读。

不保存颜色是有道理的,因为生成的文件只是纯文本,但是有什么方法可以采用任何给定的脚本,并稍后使用相同的样式重现输出,而无需再次调用脚本?

答案1

一些程序(包括您放入的任何程序)脚本)检测输出是终端还是文件,并针对这种情况关闭颜色。如果你运行你的脚本使用程序 script,通过将所有字符捕获到名为的文件中来避免此问题typescript,例如,

script -c 脚本

(后者当然是你的脚本) 然后

cat typescript

根据系统的不同,script程序可能使用不同的参数。第一个(默认为typescript) 是其中script程序写入其输出:

  • Debian/Ubuntu/etc 上的那个位于名为“bsdutils”的包中,并且命令必须使用-c选项,例如“script -c 脚本”。

  • 在一个BSD系统,没有-c选项,并且命令可以作为参数给出文件,例如,。 ”script typescript 脚本”。

虽然(可能)每个 POSIX 系统都受支持,script不属于POSIX

答案2

您可以使用该less -R <filename>.<fileformat>命令打开输出文件。它应该显示颜色...

以防万一,这里有一个彩色回声的例子:
RED='\033[0;31m'
NC='\033[0m' # No Color
printf "I ${RED}love${NC} Stack Overflow\n"

另外,您可以使用 html 文件作为输出文件,然后在浏览器中打开它:(
echo "<div style='color:$COLOR;'>$SOMEVARIABLE</div><br>" > output.html
例如,颜色应为十六进制格式#040404

相关内容