将函数的 stdout 重定向到 out.log,将 stderr 重定向到 err.log,并将两者都重定向到合并的.log,而不在子 shell 中运行该函数

问题描述 投票:0回答:0
v=1

fun() {
    v=2
    echo out1
    >&2 echo err1
    echo out2
    >&2 echo err2
}

fun >out.log 2>err.log &>combined.log

上面的方法不起作用——它只写了

combined.log
out.log
err.log
为空。
fun
无法在子 shell 中运行,因为它设置了全局变量。

bash io-redirection
© www.soinside.com 2019 - 2024. All rights reserved.