13,000
回編集
(→概要) |
|||
554行目: | 554行目: | ||
> HOGE HOGE | > HOGE HOGE | ||
<br> | <br> | ||
プロセス置換に使用するコマンドは、単一のコマンドのみではなく、セミコロン区切りの複数コマンド、パイプやネストしたプロセス置換も指定可能である。<br> | |||
<br> | |||
以下の例では、diffコマンドを使用して、2つの入力ストリームの差分を表示している。<br> | |||
# echo "aaa"; echo "bbb" | |||
#: まず、aaaとbbbという2行からなる入力ストリームを生成する。 | |||
# < (echo "aaa"; echo "bbb") | |||
#: 上記の2行の入力ストリームになる。 | |||
#: <はdiffコマンドへのリダイレクトを意味しており、この入力ストリームをdiffの最初の入力として使用する。 | |||
# cat <(echo "aaa") | cat <(echo "BBB") | |||
#: <()はプロセス置換を意味する。 | |||
#: つまり、括弧内のコマンドの出力をファイルのように扱うことができる。 | |||
#: echo "aaa"の出力をcatに渡して、さらに、echo "BBB"の出力をcatに渡して、2つの出力を連結している。 | |||
#: 結果として、aaaとBBBという2行のストリームができる。 | |||
# echo "ccc" | |||
#: cccという1行のテキストを生成する。 | |||
# < (cat <(echo "aaa") | cat <(echo "BBB"); echo "ccc") | |||
#: この括弧内では、上記3.と4.を組み合わせて、aaa、BBB、cccの3行からなるストリームを生成している。 | |||
#: そして、<でこのストリームをdiffコマンドの2番目の入力としてリダイレクトしている。 | |||
<br> | |||
したがって、このコマンド全体では、aaaとbbbの2行からなるストリームと、aaa、BBB、cccの3行からなるストリームの差分をdiffコマンドで表示している。<br> | |||
# 実行 | # 実行 | ||
diff < (echo "aaa"; echo "bbb") < (cat <(echo "aaa") | cat <(echo "BBB"); echo "ccc") | diff < (echo "aaa"; echo "bbb") < (cat <(echo "aaa") | cat <(echo "BBB"); echo "ccc") |