3

Bash のプロセス置換の例を次に示します。

zjhui@ubuntu:~/Desktop$ echo >(ls)
/dev/fd/63
zjhui@ubuntu:~/Desktop$ abs-guide.pdf

次に、コマンドを待っているカーソルを取得します。

/dev/fd/63存在しません。私は何が起こると思います:

  1. で使用されているファイル名を出力します/dev/fd
  2. で実行lsする>(ls)

これは正しいですか?入力待ちのカーソルがあるのはなぜですか?

4

1 に答える 1

5

を実行するecho >(ls)と、bashはこれをに置き換え、標準入力に接続してecho /dev/fd/63実行lsします。引数をファイル名として使用せず、標準入力を使用しません。Bashは標準のプロンプトを書き込みますが、の出力はその後になります。そこに任意のBashコマンドを入力できますが、画面のさらに上にあるプロンプトから視覚的な合図を失っただけです。/dev/fd/63echolsls

echo >(ls)これまでに役立つ可能性が高いものではありません。

于 2012-08-16T05:22:03.117 に答える