`sort <(ls -l)`はうまくいきますが、 `sort <(ls -l)`が失敗するのはなぜですか?

`sort <(ls -l)`はうまくいきますが、 `sort <(ls -l)`が失敗するのはなぜですか?

今日、私は次の記事を通してfifoについて学びました。名前付きパイプの紹介、そこに言及されていますcat <(ls -l)

いくつかの実験をしましたが、sort < (ls -l)エラーが発生しました。

-bash: syntax error near unexpected token `('`

その後、誤ってコマンドにスペースを追加したことがわかりました。

しかし、この追加コマンドがこれらのエラーを引き起こすのはなぜですか?リダイレクトシンボルはなぜ互いに近いのですか(

ベストアンサー1

なぜなら、それはaではなく、<まったく<()異なるaだからです。これは…プロセスの交換、これはあるプロセスの出力を別のプロセスの入力として使用できるいくつかのシェルの機能です。

演算子><出力と入力をリダイレクトします。文書。演算子は<()ファイルではなくコマンド(プロセス)を処理します。走るとき

sort < (ls)

lsサブシェル(角かっこの意味)でコマンドを実行し、そのサブシェルを入力ファイルとしてsort

おすすめ記事