bash 関数で 2 つのプロセス置換パイプを参照しようとすると、最初に参照されたパイプのみが機能します。2 つ目は、次のような「不正なファイル記述子」エラーを返します。
$ foo(){
> cat "$1"
> cat "$2"
> }
$ foo <(echo hi) <(echo bye)
hi
cat: /dev/fd/62: Bad file descriptor
$
1 つが参照されると、2 番目のパイプがドロップされるように見えますが、a) どのドキュメントでもこの動作を確認できないようであり、b) そうでないことを望みます。=)
私が間違っていることについてのアイデアはありますか?FWIWコマンドラインの代わりにMac OS XのFileMergeグラフィカル差分ツールを使用するラッパーを作成するためにこれを行っています。これは、コマンドラインから複数のパイプを操作することにすでに満足しています。
-ロブ