Teknologian jakaminen

Shell Expect automatisoitu vuorovaikutus (esimerkki)

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Shell Odottaa automaattista vuorovaikutusta

Päivittäisen Linux-käytön ja ylläpidon aikana on usein tarpeen kirjautua sisään palvelimelle. .

Avaimen syntaksi

❶[#!/usr/bin/expect]

Tämä rivi kertoo käyttöjärjestelmälle, mitä komentotulkkia käytetään komentosarjan koodin suorittamiseen. Odottaa tässä on itse asiassa sama asia kuin bash Linuxissa ja cmd Windowsissa. HUOMAA: Tämän rivin on oltava skriptin ensimmäinen rivi.

❷ asetettu

Oletusaikakatkaisu on 10 sekuntia. Istunnon aikakatkaisu voidaan asettaa komennolla set, jos aikakatkaisua ei ole rajoitettu.

Esimerkki: aseta aikakatkaisu 300 //Ilmoittaa, että istunnon aikakatkaisu on 300 s

Esimerkiksi: aseta aikakatkaisu -1/asetus/ei koskaan aikakatkaisu, yleiset asetukset

Huomautus: Miksi sinun on asetettava aikakatkaisu Koska oletusaika on 10 sekuntia, se todennäköisesti katkeaa interaktiivisen suorituksen aikana, jolloin tehtävän suorittaminen päättyy ennen sen valmistumista? Yrityksemme suunniteltu tehtävä, joka synkronoi tiedostoja etä-ftp:stä, päättyi myöhemmin, asetin aikakatkaisuksi -1 ja se oli hyvä.

❸kutemaan

spawnia seuraa yleensä Linuxin suorituskomento, mikä tarkoittaa istunnon avaamista, prosessin käynnistämistä ja myöhempien vuorovaikutustietojen seuraamista.

❹ odottaa

Odotus kaappaa vain spawnin suorittamien komentojen suoritustulokset, jotka sisältävät pääasiassa vakiosyöttökehotteen, eof:n ja aikakatkaisun. Odota, kunnes näyttöön tulee komentokehote, joka on kehote kaapata käyttäjän syöte:

➎ lähetä

Vuorovaikutusta vaativien arvojen lähettäminen korvaa käyttäjän manuaalisen syötteen, eikä tätä komentoa voi syöttää tai rivinvaihtoa automaattisesti, ja se vaatii yleensä r:n (carriage return) tai n:n lisäämisen

odottaa "password"{ send "abc123r"} //Saman rivin lähetysosassa on oltava {}

❻Terminaattori odottaa eof/vuorovaikutusta

odottaa eof

Tämä on lisättävä. Vastaa spawnia, se tarkoittaa, että sieppauspäätteen lähtötiedot on lopetettu, kuten jos....endif

olla vuorovaikutuksessa

Kun suoritus on valmis, säilytä interaktiivinen tila ja siirrä ohjaus konsoliin. Tällä hetkellä voidaan suorittaa manuaalinen toiminta. Jos tällaista lausetta ei ole, se poistuu sisäänkirjautumisen jälkeen sen sijaan, että pysyisi etäpäätteessä.

PS: Odotuskomentosarjan täytyy päättyä vuorovaikutukseen tai odota eof -toimintoon riittää yleensä automatisoitujen tehtävien suorittamiseen.

Esimerkki

Lisää odotuskomento shell-skriptiin, muoto on seuraava

Esimerkki 1: 22.sh luo kansion komentosarja

#!/bin/sh

odottaa

spawn ssh 10.1.1.196

odota salasanaa {send xxxn}

lähetä cd /home/cg/hmf_app/testr

lähetä mkdir newworkr

lähetä exit

odottaa eof

EOF

Esimerkki 2: Luo kansion komentosarja

odottaa

spawn ssh 10.1.1.196

odota salasanaa {send xxxn}

lähetä cd /home/cg/hmf_app/testr

lähetä mkdir newworkr

lähetä exit

odottaa eof

EOF

Esimerkki 3: Kopioi tiedostoja

odottaa

aseta aikakatkaisu -1

spawn scp [email protected]:/data/package/casb/$casbzip ./

odota salasanaa {send xxxn}

odottaa eof

EOF

Huomautus:

EOF

...

EOF

Edustaa komentotulkkikomentosarjaa

viitata:Shell Expect automatisoitu interaktio_shell-skripti interaktiivinen automaattinen syöttösisältö-CSDN-blogi