Linux Expect Command

Linux Expect Command



Bash skripti omogočajo enostavno avtomatizacijo opravil. Obstajajo številni načini, na katere lahko avtomatizirate različna ponavljajoča se opravila, da prihranite čas in trud, vključno z avtomatizacijo opravil, ki zahtevajo uporabniški vnos. Poleg tega Linux ponuja ukaze, kot je »expect«, s katerimi lahko preprosto delate s skripti.

Ukaz »expect« v sistemu Linux vam omogoča nadzor nad delovanjem skriptov, ki za izvedbo zahtevajo uporabniški vnos. Če vaš skript za nadaljevanje izvajanja zahteva uporabniški vnos, obstaja način, kako lahko nadzirate to interaktivnost z ukazom »expect«.







Kako začeti z ukazom Expect za Linux

Ukaz »expect« za Linux ni nameščen v vašem sistemu. Vendar pa lahko uporabite različne metode za namestitev. V našem primeru uporabljamo možnost »apt« za namestitev z naslednjim ukazom:



$ sudo apt namestite pričakovati



Ko je postopek končan, preverite pričakovano različico, da preverite, ali je bila namestitev uspešna.





Ko imate v svojem Linuxu na voljo informacije, se morate naučiti, kako jih uporabiti za avtomatizacijo interaktivnih nalog.



Najprej ustvarimo preprost skript Bash, da vidimo, kako bi deloval interaktivno. Naš skript od uporabnika zahteva, da vnese nekaj podrobnosti, in se lahko nadaljuje šele, ko je uporabniški vnos prebran.

Ustvarite skript Bash z urejevalnikom besedil po vaši izbiri. Ko napišete kodo skripta, shranite in zaprite urejevalnik besedil.

Datoteko skripta morate narediti izvršljivo. Za to uporabite naslednjo sintakso in jo povežite s ciljno datoteko skripta:

$ sudo chmod +x < mapa >

Za zagon skripta uporabite ukaz »./«, ki mu sledi ime skripta. Opazite, kako skript zahteva uporabniški vnos in lahko nadaljuje samo, ko vnesemo vnos.

Ko želite avtomatizirati takšno interaktivno sejo, morate uporabiti ukaz »expect«, da pošljete zahtevane vnose, ko je to potrebno, namesto da bi jih moral vnesti uporabnik.

Preden vidimo, kako pride v poštev ukaz »expect«, poiščite njegovo lokacijo z ukazom »which«. Upoštevajte pot, kjer je ukaz »expect«, saj ga boste potrebovali pri pisanju skripta »expect«.

V tem primeru je »expect« shranjen na mestu /usr/bin/expect.

Spet odprite urejevalnik besedil in ustvarite drug skript. Tokrat ga shranite s pripono ».exp«, da ga prepoznate kot pričakovani skript. Pri pisanju skripta za pričakovanje lahko uporabite štiri glavne ukaze:

  1. drstenje – Sproži nov postopek in je dodan za priklic skripta, s katerim želite avtomatizirati interaktivne razdelke.
  2. poslati – Pošlje zahtevani odgovor, ki bi ga sicer vstavil uporabnik.
  3. pričakovati – Prikazuje vrstico v ciljnem skriptu, ki čaka na izhod.
  4. komunicirati – Začne interakcijo s programom.

Za ta primer imamo skript »expect« napisan, kot je prikazano v nadaljevanju. Izpostavili smo ciljni skript in podali možnosti »pričakuj« ter kakšen odziv bodo dobili.

Zadnja vrstica prikazuje konec skripta in mora biti vključena vsakič, ko pišete skript »expect«. Naredite skript »expect« izvršljiv s pomočjo »chmod«.

Na koncu zaženite skript in opazujte, kaj se zgodi. Namesto da bi od uporabnika zahtevali interakcijo s skriptom z vstavljanjem zahtevanega vnosa, so vrednosti, ki smo jih poslali v skriptu »expect«, dodane kot odziv uporabnika. Na ta način vam uspe avtomatizirati interaktivne uporabniške vnose.

Recimo, da raje delate s spremenljivkami za vrednosti, ki jih želite imeti kot uporabniške vnose; tudi to je možno. Nastavite ciljne spremenljivke in njihove vrednosti, nato prikličite ime spremenljivke, da ga pošljete kot pričakovani uporabniški vnos. Oglejte si naslednji primer:

Ko znova zaženete ta spremenjeni skript, še vedno dosežete isti cilj, le da ste tokrat uporabili spremenljivke.

Delo s programom Autoexpect

Ustvarjanju skripta »expect« se lahko izognete z ukazom »autoexpect«. To deluje tako, da zaženete ukaz »autoexpect«, ki mu sledi skript, za katerega želite ustvariti skript »expect«.

Naš začetni skript je na primer »sample.sh«. Za to uporabimo »autoexpect« z naslednjim ukazom:

$ autoexpect . / vzorec.sh

Ko ga zaženete, se samodejno ustvari nov skript »expect« pod imenom »script.sh« in prejeli boste poziv, da podate pričakovane odgovore za uporabniške vnose.

Vse kar potrebujete je, da zaženete ustvarjeni skript in poenostavite postopek tako, da odpravite potrebo po ročnem ustvarjanju skripta »expect«.

Zaključek

Ukaz »expect« pomaga avtomatizirati interaktivne uporabniške vnose pri ustvarjanju skripta Bash. Ko mu podate pričakovane vrednosti, se bo vaš skript izvajal brez zaustavitve, čeprav je potreben vnos uporabnika. Videli smo primer dela z ukazom 'expect', vključno s tem, kako samodejno ustvariti skript 'expect' s programom autoexpect. To je to!