从源安装时 GNU Parallel 不显示颜色
GNU Parallel doesn't display colors when installed from source
有谁知道如何从源代码安装 GNU Parallel 以便某些命令的输出以颜色显示?我发现版本 20170622 在 运行 时不显示颜色,例如 nightmare with DEBUG=nightmare。
DEBUG=nightmare parallel node my-script.js
并输出:
然而,通过apt install in Ubuntu安装的版本(20141022+ds1-1)保持颜色:
让我们假设您的程序是:
echo myfoobar | grep --color foo
如果 grep
检测到输出是 tty,这会给出颜色。
您可以要求 GNU Parallel 使用 --tty
打开 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
有谁知道如何从源代码安装 GNU Parallel 以便某些命令的输出以颜色显示?我发现版本 20170622 在 运行 时不显示颜色,例如 nightmare with DEBUG=nightmare。
DEBUG=nightmare parallel node my-script.js
并输出:
然而,通过apt install in Ubuntu安装的版本(20141022+ds1-1)保持颜色:
让我们假设您的程序是:
echo myfoobar | grep --color foo
如果 grep
检测到输出是 tty,这会给出颜色。
您可以要求 GNU Parallel 使用 --tty
打开 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