当我在脚本中重定向脚本的输出时,我希望重定向应用于被调用的脚本以及其中调用的程序。
A:
./B 2>> error.log
乙:
./executable
运行 A 输出到stdout
和stderr
。我希望改为stderr
去error.log
。显然我错了。
当从 A 调用时,为什么 B 的输出没有重定向?
如何确保下标 (B) 和可执行文件的输出按照 A 尝试的方式进行重定向?
这是我的实际测试用例:
redir.sh:
#!/bin/bash
./other_script.sh 2>> error.log
other_script.sh:
#!/bin/bash
./redirection
redirection
编译redirection.c
自gcc -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;
}