バックグラウンドプロセスパイプ入力

アサイン・クヨビッチ

画面に「aaa」を表示したい場合:

(1)$: echo aaa | cat                 ... works OK
(2)$: echo aaa | ( cat )             ... works OK
(3)$: echo aaa | ( cat & )           ... NOT working
(4)$: ( echo aaa & ) | cat           ... works OK 
(5)$: echo aaa | ( cat <&0 & )       ... works ok in BASH (but not in SH)
(6)$: echo aaa | ( cat <&3 & ) 3<&0  ... works ok in BASH and SH

(3)と(4)からの結論->切り離されたプロセスには、制御、使用、リダイレクトが可能な接続された出力がありますが、入力はできません!

私の質問は:誰かが行(5)がなぜそしてどのように機能するかを理解しています

...「<&0」は「0 <&0」の略で、0を0にリダイレクトすることが解決策である理由、および切り離されたプロセスの入力で実際に何が起こるか。サブシェルは問題ではありません。(...)の代わりに中括弧{...}を使用すると、同じ結果が得られます。

...そして質問2:「デタッチされたプロセスに入力を与える」ためのより良い解決策は行(6)よりもありますか?

ステファン・チャゼラス

はい、POSIX要求され&いるように、バックグラウンドで開始されたコマンドでは、標準入力がからリダイレクトされ/dev/nullます。

本当に

{ cmd <&3 3<&- & } 3<&0

それを回避する最も明白な方法です。

ただし、パイプラインの一部をバックグラウンドで実行する理由は明確ではありません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

名前付きパイプとバックグラウンドプロセス

分類Dev

シェルスクリプト:バックグラウンドプロセスへの入力の送信

分類Dev

Bash:出力をバックグラウンドプロセスにパイプしますか?

分類Dev

イベント駆動型のバックグラウンド「プロセス」

分類Dev

プロセスをバックグラウンドにドロップする

分類Dev

Linuxのバックグラウンドプロセス

分類Dev

SpringMVCバックグラウンドプロセス

分類Dev

SpringMVCバックグラウンドプロセス

分類Dev

Javaのバックグラウンドプロセス

分類Dev

Androidとバックグラウンドプロセス

分類Dev

自動バックグラウンドプロセス

分類Dev

PHPとバックグラウンドプロセス

分類Dev

バックグラウンドでの同期プロセス

分類Dev

PIDバックグラウンドプロセス

分類Dev

バックグラウンドプロセスの制御

分類Dev

AngularJS:バックグラウンドプロセス

分類Dev

Elixirのバックグラウンドプロセス

分類Dev

Androidのバックグラウンドプロセスタイマー

分類Dev

C ++でコンパイルされたプログラムをバックグラウンドで実行し、必要に応じて入力を送信する

分類Dev

ウィンドウなしのバックグラウンドプロセス

分類Dev

Linuxプロセスをバックグラウンドに戻す-再ログイン-プロセスをフォアグラウンドに戻す方法は?

分類Dev

タグタイプから選択-セレンC#ウェブドライバーでドロップダウンを入力

分類Dev

PHPスリープ関数のバックグラウンドプロセス

分類Dev

アンパサンドを「可変化」します(プロセスのバックグラウンド)

分類Dev

iOS:バックグラウンドプロセスとシングルトン

分類Dev

std :: inとgetline()を使用して、バックグラウンドプロセスでbashから注入された入力を検出する方法

分類Dev

入力せずに&毎回バックグラウンドでプロセスを実行するにはどうすればよいですか?

分類Dev

バックグラウンドプロセスのstdout出力は、フォアグラウンドプロセスのstdin入力として使用されますか?

分類Dev

ラバのインバウンドプロパティへのアクセス

Related 関連記事

  1. 1

    名前付きパイプとバックグラウンドプロセス

  2. 2

    シェルスクリプト:バックグラウンドプロセスへの入力の送信

  3. 3

    Bash:出力をバックグラウンドプロセスにパイプしますか?

  4. 4

    イベント駆動型のバックグラウンド「プロセス」

  5. 5

    プロセスをバックグラウンドにドロップする

  6. 6

    Linuxのバックグラウンドプロセス

  7. 7

    SpringMVCバックグラウンドプロセス

  8. 8

    SpringMVCバックグラウンドプロセス

  9. 9

    Javaのバックグラウンドプロセス

  10. 10

    Androidとバックグラウンドプロセス

  11. 11

    自動バックグラウンドプロセス

  12. 12

    PHPとバックグラウンドプロセス

  13. 13

    バックグラウンドでの同期プロセス

  14. 14

    PIDバックグラウンドプロセス

  15. 15

    バックグラウンドプロセスの制御

  16. 16

    AngularJS:バックグラウンドプロセス

  17. 17

    Elixirのバックグラウンドプロセス

  18. 18

    Androidのバックグラウンドプロセスタイマー

  19. 19

    C ++でコンパイルされたプログラムをバックグラウンドで実行し、必要に応じて入力を送信する

  20. 20

    ウィンドウなしのバックグラウンドプロセス

  21. 21

    Linuxプロセスをバックグラウンドに戻す-再ログイン-プロセスをフォアグラウンドに戻す方法は?

  22. 22

    タグタイプから選択-セレンC#ウェブドライバーでドロップダウンを入力

  23. 23

    PHPスリープ関数のバックグラウンドプロセス

  24. 24

    アンパサンドを「可変化」します(プロセスのバックグラウンド)

  25. 25

    iOS:バックグラウンドプロセスとシングルトン

  26. 26

    std :: inとgetline()を使用して、バックグラウンドプロセスでbashから注入された入力を検出する方法

  27. 27

    入力せずに&毎回バックグラウンドでプロセスを実行するにはどうすればよいですか?

  28. 28

    バックグラウンドプロセスのstdout出力は、フォアグラウンドプロセスのstdin入力として使用されますか?

  29. 29

    ラバのインバウンドプロパティへのアクセス

ホットタグ

アーカイブ