![保留脚本输出的颜色以供以后查看](https://linux22.com/image/150835/%E4%BF%9D%E7%95%99%E8%84%9A%E6%9C%AC%E8%BE%93%E5%87%BA%E7%9A%84%E9%A2%9C%E8%89%B2%E4%BB%A5%E4%BE%9B%E4%BB%A5%E5%90%8E%E6%9F%A5%E7%9C%8B.png)
我想保存脚本的输出,以便稍后查看。但是,当我将输出保存到文件 ( 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
)