Colors GNU并行-保持输出有色

Colors GNU并行-保持输出有色,colors,gnu-parallel,Colors,Gnu Parallel,我正在并行化一些具有彩色输出的0-args命令(脚本/任何东西),但是当并行打印输出时,它是无色的(除非我使用-u选项,但是它是无序的) 有没有办法改变这种状况 我正在使用的行(插图): 顺便说一句,我使用的是GNU并行的本地版本,但它应该或多或少是相同的 感谢原因是您的命令行工具检测到它们没有打印到终端(在将它们打印到终端之前,GNU Parallel会将它们保存到临时文件中)。即使输出到文件,也可以使用某些工具强制使用颜色: parallel 'echo {} | grep --color=

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

有没有办法改变这种状况

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

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


感谢

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

parallel 'echo {} | grep --color=always o' ::: joe
您可以要求GNU Parallel为脚本提供tty:

parallel --tty -j+0 'echo {} | grep o' ::: joe
--tty
默认值为
-j1
,因此必须显式覆盖该值。它也有一个问题,GNU并行不能杀死工作。这将运行10秒:

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

您的意思是脚本负责无色的输出?i、 有一段明确的代码可以检测到文件的重定向并禁用颜色?否则它会变得五颜六色吗?@elad是的。他们将测试输出是否为tty。
parallel --tty --timeout 5 sleep ::: 10