ela*_*lad 5 colors gnu-parallel
我正在并行处理一些带有彩色输出的0-args命令(脚本/任何命令),但是当并行打印输出时,它是无色的(除非我使用该-u选项,但是它是无序的)。
有办法改变吗?
我正在使用的行(插图):
echo "script1 script2 script3" | tr " " "\n" | parallel -j3 'echo {}":\n\n"; eval {}'
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我使用的是GNU parallel的本地版本,但是应该大致相同。
谢谢
原因是您的命令行工具检测到它们没有打印到终端(GNU Parallel 在将它们打印到终端之前将其保存到临时文件中)。即使输出到文件,某些工具也可以强制使用颜色:
parallel 'echo {} | grep --color=always o' ::: joe
Run Code Online (Sandbox Code Playgroud)
您可以要求 GNU Parallel 为脚本提供 tty:
parallel --tty -j+0 'echo {} | grep o' ::: joe
Run Code Online (Sandbox Code Playgroud)
--tty默认为,-j1因此您必须显式覆盖它。它还存在一个问题,即 GNU Parallel 无法终止作业。这将运行 10 秒:
parallel --tty --timeout 5 sleep ::: 10
Run Code Online (Sandbox Code Playgroud)