Apakah mungkin memiliki skrip bash secara otomatis menangani perintah yang biasanya disajikan kepada pengguna dengan tindakan default? Saat ini saya menggunakan skrip bash untuk memanggil alat internal yang akan menampilkan petunjuk kepada pengguna (meminta Y / T) untuk menyelesaikan tindakan, namun skrip yang saya tulis harus sepenuhnya "lepas tangan", jadi Saya perlu cara untuk mengirim Y|N
ke prompt untuk memungkinkan program melanjutkan eksekusi. Apakah ini mungkin?
109
yes
untuk melakukan ini: unix.stackexchange.com/questions/47344/…Jawaban:
Ini bukan "pelengkapan otomatis", ini adalah otomatisasi. Salah satu alat umum untuk hal-hal ini disebut Harapan .
Anda mungkin juga lolos hanya dengan memasukkan masukan dari
yes
.sumber
yes
melakukan triknya, untungnya semua petunjuknya hanya memerlukan 'y'. Terima kasih.Yes | command
mungkin tidak selalu berhasil. Jika itu hanya untuk tujuan instalasi maka saya merasa menggunakan-y
adalah pilihan yang lebih baik dan lebih disukai.Sederhana
Ini memungkinkan Anda untuk meneruskan urutan "Y" atau "N" ke skrip Anda.
sumber
N
, saya akan menggunakan metode ini, tapi saya hanya membutuhkan Y jadi saya pergi denganyes
. Sayang sekali saya tidak bisa menerima dua jawaban, karena keduanya benar.N
Anda sekarang memiliki cara yang baik untuk melakukannya."Y N"
sebagai input ke prompt pertama dan berhenti pada prompt kedua menunggu saya untuk menyelesaikannya. Saya mencoba mengubah spasi menjadi baris baru tetapi itu tidak berhasil, masih memberikan string literal ke prompt.printf 'y\ny\ny\n' | ./your_script
. Dengan cara ini Anda memasukkan baris baru secara manual untuk setiap entri yang diharapkan.printf '%s\n' Y Y N N Y N Y Y N
menempatkan baris baru di antara item, tetapi tanpa perlu satu string format besar.Saya menemukan cara terbaik untuk mengirim masukan adalah dengan menggunakan cat dan file teks untuk menyampaikan masukan apa pun yang Anda butuhkan.
sumber
Jika Anda hanya memiliki Y untuk dikirim:
Jika Anda hanya memiliki N untuk mengirim:
sumber
Dalam situasi saya, saya perlu menjawab beberapa pertanyaan tanpa Y atau N tetapi dengan teks atau kosong. Saya menemukan cara terbaik untuk melakukan ini dalam situasi saya adalah dengan membuat file shellscript. Dalam kasus saya, saya menyebutnya pelengkapan otomatis.sh
Saya perlu menjawab beberapa pertanyaan untuk eksportir skema doktrin sehingga file saya terlihat seperti ini.
- Ini hanya contoh -
Hal yang saya suka tentang strategi ini adalah Anda dapat mengomentari apa jawaban Anda dan menggunakan EOF baris kosong hanya itu (jawaban default). Ternyata alat eksportir ini memiliki mitra JSON sendiri untuk menjawab pertanyaan-pertanyaan ini, tetapi saya mengetahuinya setelah saya melakukan ini =).
untuk menjalankan skrip cukup berada di direktori yang Anda inginkan dan jalankan
'sh autocomplete.sh'
di terminal.Singkatnya dengan menggunakan << EOL & EOF dalam kombinasi dengan Garis Kembali, Anda dapat menjawab setiap pertanyaan dari prompt yang diperlukan. Setiap baris baru adalah jawaban baru.
Contoh saya hanya menunjukkan bagaimana ini bisa dilakukan dengan komentar juga menggunakan karakter `sehingga Anda ingat apa setiap langkahnya.
Perhatikan keuntungan lain dari metode ini adalah Anda dapat menjawab dengan lebih dari hanya Y atau N ... sebenarnya Anda dapat menjawab dengan kosong!
Semoga ini membantu seseorang.
sumber
Ada kegunaan bawaan khusus untuk ini - ' ya '.
Untuk menjawab semua pertanyaan dengan jawaban yang sama, Anda bisa lari
Atau Anda bisa memasukkannya ke dalam naskah Anda yang memiliki jawaban spesifik untuk setiap pertanyaan
sumber