有没有人知道如何从源代码安装GNU Parallel,以便某些命令的输出显示颜色?我发现版本20170622在运行时不显示颜色,例如nightmare,DEBUG = nightmare。
DEBUG=nightmare parallel node my-script.js
和输出:
但是,在Ubuntu(20141022 + ds1-1)中通过apt安装安装的版本保留了颜色:
答案 0 :(得分:1)
让我们假设您的计划是:
echo myfoobar | grep --color foo
如果grep
检测到输出是tty,则会给出颜色。
您可以使用--tty
让GNU Parallel打开tty。 --tty
默认为-j1
,因此您也需要设置它:
parallel -j100% --tty 'echo myfoobar | grep --color' ::: foo
问题是,缓冲也被禁用,因此它会激活--ungroup
,这就是为什么这不是默认值。正如你在这里看到的那样,作业的输出组合:
fu() { echo myfoobar | grep --color "$@"; }
env_parallel -j100% --tty 'echo {}; fu {};sleep 0.1; echo {}; fu {}' ::: foo fo f b ba bar