プロセス置換 (Process Substitution)について - 一から勉強させてください zsh: 14 Expansion

diffとかで見るこの書き方

$ diff <(ls one.txt) <(ls two.txt)

コマンドの結果をinputとして渡しているように見える。 リダイレクトに見えるが矢印の方向が逆

  • <(list)
    • リストの結果を入力ファイルに置き換える
  • >(list)
    • リストの結果を出力ファイルに置き換える

shellのリダイレクト

応用例

標準出力と標準エラー出力にリダイレクトしながら出力をターミナルに表示 (bash, tee, process substitution) - いろいろ備忘録日記

$ ./script.sh 1> >(tee -a stdout.log) 2> >(tee -a stderr.log >&2)

このようにすると、 ./script.sh の出力をteeコマンドのプロセスにリダイレクトすることで、標準出力しつつファイルに書くことができる