colors - GNU 并行 - 保持输出彩色

标签 colors gnu-parallel

我正在并行化一些具有彩色输出的 0-args 命令(脚本/其他),但是当并行打印输出时,它是无色的(除非我使用 -u 选项,但它是无序的)。

有办法改变吗?

我正在使用的线路(插图):

echo "script1 script2 script3" | tr " " "\n" | parallel -j3 'echo {}":\n\n"; eval {}'

顺便说一句,我正在使用 GNU 并行的本地版本,但它应该或多或少相同。

谢谢

最佳答案

原因是您的命令行工具检测到它们没有打印到终端(GNU Parallel 在将它们打印到终端之前将其保存到临时文件中)。即使输出到文件,某些工具也可以强制使用颜色:

parallel 'echo {} | grep --color=always o' ::: joe

您可以要求 GNU Parallel 为脚本提供 tty:

parallel --tty -j+0 'echo {} | grep o' ::: joe

--tty 默认为 -j1,因此您必须显式覆盖它。它还存在一个问题,即 GNU Parallel 无法终止作业。这将运行 10 秒:

parallel --tty --timeout 5 sleep ::: 10

关于colors - GNU 并行 - 保持输出彩色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34276565/

相关文章:

html - 扩展页脚(不用Javascript?)

ubuntu - gnu 并行 : Prefix output with hostname(s)

bash - gnu 并行 : space interpretation and within process variable editing

html - 悬停时概述表格行

php - 如何使用 PHP 生成随机的 DARK 十六进制颜色代码?

通过管道重定向时捕获 SetConsoleTextAttribute 的效果?

python - GNU 并行和 Python atexit

shell - GNU 与 rsync 并行

imagemagick - 使用并行和 Imagemagick 将图像转换为 gif

database - 如何实现图片库的颜色搜索?