"</dev/null" とはどういう意味ですか?

"</dev/null" とはどういう意味ですか?

私はブラックホールのような場所> /dev/nullに物事をリダイレクトすることを理解しています。/dev/nullしかし、私は< /dev/nullそれが何を意味するのか理解していません。私は次のように書かれたいくつかのスクリプトを見たことがあります。

nohup myprogram > foo.out 2> foo.err < /dev/null &

それでは、< /dev/null上記のコードの意味は何ですか?

これははい提案はどこにありますか?

答え1

すべてのI / Oストリームが占有/占有されていることを確認してください。

これにより、バックグラウンドプロセスが端末のどの項目にも「接続」されないため、プログラムはTTYからデータを読み取ろうとし、端末が中断されることなく作業を実行できます。

この場合、シェルスクリプトはsshを介してプロセスを起動し、スクリプトが邪魔にならずに実行されていることを確認できます。

答え2

program </dev/nullprogram入力パラメータ(オプションの入力パラメータまたは作業する入力ファイル)がファイル記述子0(STDINなど)を介してファイルから取得されていることを意味します/dev/null

ご存知のように、/dev/null何も含まず、読み取るときにEOF(ファイルの終わり)を通知するので、入力を受け取るプログラムはデフォルトで/dev/null何も入力引数にリダイレクトしません。

関連情報