あるスクリプトから別のスクリプトに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;
}

ベストアンサー1

おすすめ記事