在 GNU Parallel 中抑制 stderr

Jas*_*siu 5 stderr ubuntu gnu-parallel

我正在使用 GNU Parallel 同时运行命令数千次。

为了获取我正在使用的执行日志--files--results.

为了在运行时获得漂亮的进度条,我正在使用--eta--progress

现在,我的问题是,虽然 STDERR 被重定向到文件,但它仍然打印到终端,这会损坏我的进度条。

如何禁止将 STDERR 打印到终端?我仍然希望在日志文件中包含这些信息,所以我不能只将命令包装到2>/dev/null.

到目前为止,我的命令行如下所示:

cat input.txt | parallel -P 10 --progress --eta --files --results output_dir/ "./script.sh some-arg {}"
Run Code Online (Sandbox Code Playgroud)

Ole*_*nge 1

如果您想要一个不错的酒吧,我可以建议您--bar代替吗--eta?您需要版本 20131122 或更高版本。

这似乎有效,因为 STDERR 文件不会被打印,所以除了以下内容之外,您在 STDERR 上什么也得不到--bar

cat input.txt | parallel -P 10 --bar --files --results output_dir/ "./script.sh some-arg {}" >/dev/null
Run Code Online (Sandbox Code Playgroud)