Saya mengerti > /dev/null
mengarahkan hal-hal /dev/null
yang bertindak seperti lubang hitam. Namun, saya tidak mengerti apa < /dev/null
artinya. Saya melihat beberapa skrip ditulis seperti ini:
nohup myprogram > foo.out 2> foo.err < /dev/null &
Jadi, apa artinya < /dev/null
dalam kode di atas?
inilah contoh yang disarankan
<&-
?Jawaban:
Ini memastikan bahwa semua aliran I / O dicatat-untuk / ditempati.
Dengan cara ini, proses latar belakang tidak ada yang "terikat" ke terminal sehingga Anda dapat melanjutkan bisnis Anda tanpa program Anda mencoba membaca dari TTY, yang akan menyebabkan terminal hang.
Dalam hal ini, karena Anda meluncurkan proses lebih dari ssh dari skrip shell, itu memastikan bahwa skrip dapat bergerak tanpa terbebani.
sumber
< /dev/null
.< /dev/null
?program </dev/null
berarti bahwaprogram
mengambil argumen inputnya (dapat menjadi parameter input ke opsi atau dapat menjadi input file untuk beroperasi) melalui deskriptor file 0 yaitu STDIN, dari file/dev/null
.Seperti yang sudah Anda ketahui,
/dev/null
tidak mengandung apa pun, itu akan memberi tahu EOF (End of File) setelah dibaca sehingga setiap program yang mengambil input dari/dev/null
dasarnya akan mengarahkan ulang apa pun sebagai argumen inputnya.sumber
< /dev/null
? Tulis saja sebagainohup myprogram > foo.out 2> foo.err &
program
.. apa yang diinginkannya sebagai STDIN? Beberapa program mungkin mewajibkannya sehingga Anda perlu meletakkan sesuatu sebagai STDIN, ini mungkin terjadi di sini bahwa Anda baru saja menggunakan/dev/null
STDIN dan membiarkan program melakukan pemrosesan dan memasukkan STDOUT dan STDERR ke dalam file yang disebutkan ..