Di UNIX, saya memiliki proses yang ingin saya jalankan menggunakan nohup. Namun, proses ini pada suatu saat akan menunggu di prompt di mana saya harus masuk yes
atau no
untuk melanjutkan. Sejauh ini, di UNIX saya telah melakukan hal berikut:
nohup myprocess <<EOF
y
EOF
Jadi saya memulai proses 'myprocess' menggunakan nohup dan pipa dalam file dengan 'y' kemudian tutup file tersebut. Baris di atas secara efektif adalah tiga perintah terpisah - yaitu saya menekan enter pada baris pertama di UNIX, lalu saya mendapatkan prompt di mana saya memasukkan 'y' dan kemudian tekan enter untuk akhirnya mengetik 'EOF' dan tekan kembali lagi. Jadi ini berfungsi dengan baik, tetapi masalah saya ada di bawah ini.
Saya ingin sekarang menjalankan ini di Perl, tetapi saya tidak yakin bagaimana saya bisa menjalankan perintah ini, karena ini lebih dari tiga baris. Saya tidak tahu apakah yang berikut ini akan berfungsi:
my $startprocess = `nohup myprocess <<EOF &
y
EOF
`
Jawaban:
Jika Anda hanya ingin menulis satu
y
untuk stdin dari proses, Anda dapat melakukan ini:Jika Anda ingin terus menulis
y
untuk setiap prompt yang muncul, coreutilyes
ada untuk tujuan ini - itu akan terus menulis apa pun yang Anda kirim ke stdout. Standarnya adalah output "y", jadi Anda bisa:tetapi jika Anda membutuhkan sesuatu yang lain, Anda dapat menyampaikannya sebagai argumen
sumber
yes
digunakan dalam ribuan tahun