プログラムへの入力ファイルにプロセス置換を使用しようとしていますが、機能しません。一部のプログラムでは、入力ファイルのプロセス置換が許可されていないためですか?
以下は機能しません。
bash -c "cat meaningless_name"
>sequence1
gattacagattacagattacagattacagattacagattacagattacagattaca
>sequence2
gattacagattacagattacagattacagattacagattacagattacagattaca
bash -c "clustalw -align -infile=<(cat meaningless_name) -outfile=output_alignment.aln -newtree=output_tree.dnd"
(Less verbose output, finishing with:
No sequences in file. No alignment!
ただし、次のコントロールは機能します。
bash -c "clustalw -align -infile=meaningless_name -outfile=output_alignment.aln -newtree=output_tree.dnd"
(Verbose output, finishing with:
CLUSTAL-Alignment file created [output_alignment.aln]
bash -c "cat <(cat meaningless_name) > meaningless_name2"
diff meaningless_name meaningless_name2
(No output: the two files are the same)
bash -c "clustalw -align -infile=meaningless_name2 -outfile=output_alignment.aln -newtree=output_tree.dnd"
(Verbose output, finishing with:
CLUSTAL-Alignment file created [output_alignment.aln]
これは、プロセス置換自体は機能するが、clustalw プログラム自体がプロセス置換を好まないことを示唆しています-おそらく、非標準ファイルを作成するか、異常なファイル名のファイルを作成するためです。
プログラムがプロセス置換を受け入れないのは一般的ですか? これが問題であるかどうかを確認するにはどうすればよいですか?
Ubuntu 9.10 で GNU bash バージョン 4.0.33(1)-release (x86_64-pc-linux-gnu) を実行しています。Clustalw はバージョン 2.0.10 です。