次のBashスクリプトを使用してください3-output-writer.sh
。
echo A >&1
echo B >&2
echo C >&3
もちろん、Bashは3番目の出力ストリームで何をすべきかわからないため、. 3-output-writer.sh
実行時にエラーが発生します。3: Bad file descriptor
しかし、簡単に行うことができ、. 3-output-writer.sh 3>file.txt
Bashは満足するでしょう。
しかし、問題は、これら3つを同時に使用できるように、これらすべてを他のプロセスにどのようにリンクするかです。たとえば、3つの名前付きパイプを作成する以外に他の方法はありますか?
mkfifo pipe1 pipe2 pipe3 # prepare pipes
. 3-output-writer.sh 1>pipe1 2>pipe2 3>pipe3 & # background the writer, awaiting readers
3-input-reader pipe1 pipe2 pipe3 # some sort of reader, careful not to block
rm pipe1 pipe2 pipe3
?