将 IO 重定向从一个脚本继承到另一个脚本

将 IO 重定向从一个脚本继承到另一个脚本

当我在脚本中重定向脚本的输出时,我希望重定向应用于被调用的脚本以及其中调用的程序。

A:

./B 2>> error.log

乙:

./executable

运行 A 输出到stdoutstderr。我希望改为stderrerror.log。显然我错了。

当从 A 调用时,为什么 B 的输出没有重定向?

如何确保下标 (B) 和可执行文件的输出按照 A 尝试的方式进行重定向?

这是我的实际测试用例:


redir.sh:

#!/bin/bash
./other_script.sh 2>> error.log

other_script.sh:

#!/bin/bash
./redirection

redirection编译redirection.cgcc -o redirection redirection.c

#include <stdio.h>

#define NB_LOOPS (10)

int main(void)
{
    int i;
    for (i = 0; i < NB_LOOPS; ++i) {
        fprintf(stdout, "stdout %d\n", i);
        fprintf(stderr, "stderr %d\n", i);
    }
    return 0;
}

相关内容