运行 一个 bash 命令并重定向 stdout/stderr 到不同的文件,每个文件限制为 50K

run a bash command and redirect stdout/stderr to different files each limited to 50K

我可以不受文件大小限制:

bash_script >${TMP}/stdout 2>${TMP}/stderr

我可以在之后截断它们,但我想要的是它们从一开始就永远不会超过大小限制...

使用 head -c50kB 将管道限制为前 50'000 个字节。

bash_script > >(head -c50kB > "$tmp/stdout") 2> >(head -c50kB > "$tmp/stderr")

bash_script 2> >(head -c50kB > "$tmp/stderr") | head -c50kB > "$tmp/stdout"