代码之家  ›  专栏  ›  技术社区  ›  r_31415

从源代码安装时,GNU Parallel不显示颜色

  •  1
  • r_31415  · 技术社区  · 7 年前

    有人知道如何从源代码安装GNU并行程序,以便用颜色显示某些命令的输出吗?我发现版本20170622在运行时不显示颜色,例如, nightmare 调试=噩梦。

    DEBUG=nightmare parallel node my-script.js
    

    和输出:

    enter image description here

    然而,在Ubuntu(20141022+ds1-1)中通过apt安装安装的版本保持了以下颜色:

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  3
  •   Ole Tange    7 年前

    假设您的程序是:

    echo myfoobar | grep --color foo
    

    这会在以下情况下提供颜色: grep 检测到输出为tty。

    您可以使用以下命令请求GNU并行打开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