3

違いは何ですか

cat dat | tee >(wc -l ) | some other command

cat dat | tee file | wc -l

内部で何が起こっているのかという点で?ティーがストリームをファイルとパイプにフォークしているので、2番目のものを理解できます。しかし、私は最初のものと混同しています。

4

2 に答える 2

3

最初の表記は、Bash 4.xのプロセス置換です(3.xにない、または3.xのすべてのバージョンではない)。

関係する限り、標準出力だけでなく、書き込み先teeのファイル名(など)が付けられます。/dev/fd/64これは、実際にはパイプの書き込み終了用のファイル記述子です。に関する限り、標準入力( forにwc接続されているパイプの読み取り端)を読み取り、パイプラインを呼び出すシェルの標準出力(標準出力がダウンしない)に応答を書き込みます。パイプライン)。/dev/fd/64teetee

于 2012-12-04T03:31:36.347 に答える
1

>(はbashのプロセス置換であるため、最初の行は次のように述べています。プロセス'wc'が実行されている間、ファイル'dat'の内容を他のコマンドに送信します。 '

bashのマンページの「プロセス置換」を確認してください。

于 2012-12-04T03:31:21.233 に答える