informasi kontak saya
Surat[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Shell Harapkan interaksi otomatis
Selama pengoperasian dan pemeliharaan Linux sehari-hari, sering kali diperlukan login ke server dari jarak jauh. Selama proses login, diperlukan proses interaktif, dan informasi seperti ya/tidak mungkin perlu dimasukkan, sehingga ekspektasi digunakan untuk mencapai interaksi. .
Sintaks kunci
❶[#!/usr/bin/harapkan]
Baris ini memberitahu sistem operasi shell mana yang akan digunakan untuk mengeksekusi kode dalam skrip. Harapkan di sini sebenarnya sama dengan bash di Linux dan cmd di Windows. CATATAN: Baris ini harus menjadi baris pertama dalam skrip.
❷mengatur
Batas waktu default yang diharapkan adalah 10 detik. Batas waktu sesi dapat diatur melalui perintah set.
Misalnya: setel batas waktu 300 //Menunjukkan bahwa batas waktu sesi adalah 300 detik
Misalnya: atur batas waktu -1/pengaturan/tidak pernah batas waktu, pengaturan umum
Catatan: Mengapa Anda perlu menyetel batas waktu? Karena waktu default adalah 10 detik, kemungkinan besar sambungan akan terputus selama eksekusi interaktif, menyebabkan eksekusi tugas dihentikan sebelum selesai. Tugas terjadwal perusahaan kami yang menyinkronkan file dari ftp jarak jauh selalu dihentikan. Kemudian, saya menyetel batas waktu ke -1 dan semuanya baik-baik saja.
❸bertelur
spawn biasanya diikuti dengan perintah eksekusi Linux, yang berarti membuka sesi, memulai proses, dan melacak informasi interaksi selanjutnya.
❹mengharapkan
Hanya hasil eksekusi dari perintah yang dijalankan oleh spawn yang ditangkap oleh ekspektasi, yang terutama mencakup informasi prompt input standar, eof, dan batas waktu. Tunggu hingga prompt perintah muncul, yang merupakan prompt untuk menangkap input pengguna:
➎kirim
Mengirim nilai yang memerlukan interaksi menggantikan input manual pengguna; perintah ini tidak dapat masuk atau umpan baris secara otomatis, dan umumnya memerlukan penambahan r (carriage return) atau n
mengharapkan "kata sandi"{ send "abc123r"} //Bagian kirim pada baris yang sama harus memiliki {}
❻Terminator mengharapkan eof/berinteraksi
mengharapkan eof
Ini harus ditambahkan. Sesuai dengan spawn, artinya informasi keluaran terminal penangkapan dihentikan, mirip dengan if....endif
berinteraksi
Setelah eksekusi selesai, pertahankan status interaktif dan transfer kontrol ke konsol. Saat ini, operasi manual dapat dilakukan. Jika tidak ada kalimat seperti itu, ia akan keluar setelah login selesai, alih-alih tetap berada di terminal jarak jauh.
PS: Skrip ekspektasi harus diakhiri dengan interaksi atau ekspektasi eof. Expect eof biasanya cukup untuk melakukan tugas otomatis.
Contoh
Masukkan perintah ekspektasi pada skrip shell, formatnya sebagai berikut
Contoh 1: 22.sh membuat skrip folder
#!/tempat sampah/sh mengharapkan memunculkan ssh 10.1.1.196 harap kata sandi {kirim xxxn} kirim cd /home/cg/hmf_app/testr kirim mkdir newworkr kirim keluar mengharapkan eof Akhir Pekan |
Contoh 2: Buat skrip shell folder
mengharapkan memunculkan ssh 10.1.1.196 harap kata sandi {kirim xxxn} kirim cd /home/cg/hmf_app/testr kirim mkdir newworkr kirim keluar mengharapkan eof Akhir Pekan |
Contoh 3: Salin file
mengharapkan tetapkan batas waktu -1 memunculkan scp [email protected]:/data/package/casb/$casbzip ./ harap kata sandi {kirim xxxn} mengharapkan eof Akhir Pekan |
Komentar:
Akhir Pekan
...
Akhir Pekan
Mewakili skrip shell
mengacu pada:Shell Harapkan skrip interaksi_shell otomatis konten masukan otomatis interaktif-Blog CSDN