Saya memiliki skrip bash yang menggunakan ekstensi read
perintah untuk membaca argumen ke perintah secara interaktif, misalnya opsi ya / tidak. Adakah cara untuk memanggil skrip ini dalam skrip non-interaktif dengan meneruskan nilai opsi default sebagai argumen?
Bukan hanya satu opsi yang harus saya berikan ke skrip interaktif.
bash
interactive
non-interactive
sidharth sharma
sumber
sumber
Jawaban:
Untuk tugas yang lebih kompleks ada
expect
( http://en.wikipedia.org/wiki/Expect ). Ini pada dasarnya mensimulasikan pengguna, Anda dapat membuat kode skrip bagaimana bereaksi terhadap keluaran program tertentu dan hal-hal terkait.Ini juga berfungsi dalam kasus seperti
ssh
itu yang melarang penyisipan kata sandi ke sana.sumber
Banyak jalan
menyalurkan masukan Anda
mengarahkan ulang dari file
gunakan dokumen di sini (ini bisa sangat mudah dibaca)
gunakan string di sini
sumber
read
untuk mengambil stdin, fungsi apa yang dapat Anda gunakan untuk melakukan apa yang Anda jelaskan?Anda dapat memasukkan data ke dalam file dan mengarahkannya kembali seperti ini:
Data untuk skrip:
Menjalankan skrip:
sumber
Hanya ingin menambahkan satu cara lagi. Menemukannya di tempat lain, dan cukup sederhana. Katakanlah saya ingin meneruskan ya untuk semua petunjuk di baris perintah untuk perintah "execute_command", Maka saya hanya akan menyalurkan ya untuk itu.
Ini akan menggunakan ya sebagai jawaban untuk semua pertanyaan ya / tidak.
sumber
Anda juga dapat menggunakan printf untuk menyalurkan input ke skrip Anda.
sumber
alternatif lain bisa
Perintah tee mencetak input yang diterimanya ke layar dan menyimpannya ke file pada saat yang bersamaan.
sumber