颜色 – GNU并行 – 保持输出颜色

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

有办法改变吗?

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

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

顺便说一句,我使用的是本地版本的GNU parallel,但它应该或多或少相同.

谢谢

最佳答案 原因是您的命令行工具检测到它们没有打印到终端(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
点赞