한 스크립트에서 다른 스크립트로 IO 리디렉션을 상속합니다.

한 스크립트에서 다른 스크립트로 IO 리디렉션을 상속합니다.

스크립트 내에서 스크립트의 출력을 리디렉션할 때 호출되는 스크립트와 그 안에서 호출되는 프로그램에 리디렉션이 적용되기를 원합니다.

ㅏ:

./B 2>> error.log

두번째:

./executable

stdoutA를 실행하여 및 로 출력합니다 stderr. 나는 대신 stderr에 가기 를 희망한다 error.log. 분명히 나는 ​​틀렸다.

A에서 호출할 때 B의 출력이 리디렉션되지 않는 이유는 무엇입니까?

아래 첨자 (B)와 실행 파일의 출력이 A가 시도하는 방식으로 리디렉션되도록 하려면 어떻게 해야 합니까?

실제 테스트 사례는 다음과 같습니다.


redir.sh:

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

기타_스크립트.sh:

#!/bin/bash
./redirection

redirectionredirection.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;
}

관련 정보