Linux Expect Command

Linux Expect Command



Ginagawa ng mga Bash script na isang madaling bagay ang automation ng mga gawain. Mayroong maraming mga paraan kung saan maaari mong i-automate ang iba't ibang mga paulit-ulit na gawain upang makatipid ng oras at pagsisikap, kabilang ang pag-automate ng mga gawain na nangangailangan ng input ng user. Bukod pa rito, nag-aalok ang Linux ng mga utos tulad ng 'asahan' na madaling gumana sa iyong paraan sa paligid gamit ang mga script.

Hinahayaan ka ng command na 'expect' ng Linux na kontrolin kung paano gumagana ang mga script na nangangailangan ng input ng user upang maisagawa. Kung ang iyong script ay nangangailangan ng input ng user upang magpatuloy sa pagpapatupad, mayroong isang paraan kung paano mo makokontrol ang interaktibidad na ito gamit ang command na 'expect'.







Pagsisimula sa Linux Expect Command

Hindi naka-install ang Linux na 'expect' command sa iyong system. Gayunpaman, maaari kang gumamit ng iba't ibang mga paraan upang mai-install ito. Para sa aming kaso, ginagamit namin ang opsyong 'apt' para i-install ito gamit ang sumusunod na command:



$ sudo apt i-install asahan



Kapag nakumpleto na ang proseso, suriin ang inaasahang bersyon upang ma-verify na matagumpay ang pag-install.





Sa sandaling mayroon ka ng impormasyon na magagamit sa iyong Linux, ang susunod na bagay ay pag-aaral kung paano gamitin ito upang i-automate ang mga interactive na gawain.



Una, gumawa tayo ng simpleng Bash script para makita kung paano ito gagana nang interactive. Ang aming script ay nag-uudyok sa gumagamit na mag-input ng ilang mga detalye, at maaari lamang itong magpatuloy sa pagtakbo kapag ang isang input ng user ay nabasa na.

Gumawa ng isang Bash script gamit ang isang text editor na gusto mo. Kapag naisulat mo na ang iyong script code, i-save at lumabas sa text editor.

Dapat mong gawing executable ang script file. Para diyan, gamitin ang sumusunod na syntax at itugma ito sa iyong target na script file:

$ sudo chmod +x < file >

Upang patakbuhin ang script, gamitin ang command na './' na sinusundan ng pangalan ng script. Pansinin kung paano nag-prompt ang script para sa input ng user at maaari lamang magpatuloy kapag na-type namin ang input.

Kapag gusto mong i-automate ang naturang interactive na session, dapat mong gamitin ang command na 'expect' para ipadala ang mga kinakailangang input kapag kinakailangan sa halip na ipasok ng isang user ang mga ito.

Bago natin makita kung paano papasok ang 'expect' command, hanapin ang lokasyon nito gamit ang 'which' command. Tandaan ang landas kung saan matatagpuan ang 'expect' command dahil kakailanganin mo ito kapag nagsusulat ng 'expect' script.

Para sa kasong ito, ang 'expect' ay naka-store sa /usr/bin/expect na lokasyon.

Muli, buksan ang iyong text editor at lumikha ng isa pang script. Sa pagkakataong ito, i-save ito gamit ang '.exp' na extension para matukoy ito bilang expect script. Mayroong apat na pangunahing utos na magagamit mo sa pagsulat ng iyong inaasahan na script:

  1. mangitlog – Nagsisimula ito ng isang bagong proseso at idinagdag upang i-invoke ang script na gusto mong i-automate ang mga interactive na seksyon.
  2. ipadala – Nagpapadala ito ng kinakailangang tugon na kung hindi man ay ipapasok ng gumagamit.
  3. asahan – Ipinapakita nito ang linya sa target na script na naghihintay ng output.
  4. Makipag-ugnayan – Nagsisimula itong makipag-ugnayan sa programa.

Para sa kasong ito, mayroon kaming 'inaasahan' na script na nakasulat tulad ng ipinapakita sa sumusunod. Na-highlight namin ang target na script at binigyan ang mga opsyong 'asahan' at kung anong tugon ang makukuha nila.

Ipinapakita ng huling linya ang dulo ng script at dapat isama sa tuwing nagsusulat ka ng isang 'asahan' na script. Gawing executable ang 'expect' script gamit ang 'chmod'.

Panghuli, patakbuhin ang script at panoorin kung ano ang mangyayari. Sa halip na hilingin sa isang user na makipag-ugnayan sa script sa pamamagitan ng paglalagay ng kinakailangang input, ang mga value na ipinadala namin sa 'expect' na script ay idinaragdag bilang mga tugon ng user. Sa ganoong paraan, pinamamahalaan mong i-automate ang mga interactive na input ng user.

Ipagpalagay na mas gusto mong magtrabaho kasama ang mga variable para sa mga value na gusto mong magkaroon bilang mga input ng user; iyon din, ay posible. Itakda ang mga target na variable at ang mga value ng mga ito, pagkatapos ay i-invoke ang variable na pangalan upang ipadala ito bilang inaasahang input ng user. Tingnan ang sumusunod na halimbawa:

Kapag muli mong pinatakbo ang binagong script na ito, nakukuha mo pa rin ang parehong layunin, tanging mga variable ang ginamit mo sa pagkakataong ito.

Nagtatrabaho sa Autoexpect

Maiiwasan mong gawin ang script na 'expect' gamit ang command na 'autoexpect'. Paano ito gumagana ay ang pagpapatakbo mo ng command na 'autoexpect' na sinusundan ng script kung saan mo gustong gumawa ng script na 'expect'.

Halimbawa, ang aming unang script ay 'sample.sh'. Para diyan, ginagamit namin ang 'autoexpect' gamit ang sumusunod na command:

$ autoexpect . / sample.sh

Sa sandaling patakbuhin mo ito, awtomatikong gagawa ng bagong 'expect' script sa ilalim ng pangalang 'script.sh', at mapo-prompt kang ibigay ang mga inaasahang tugon para sa mga input ng user.

Ang kailangan mo lang ay patakbuhin ang ginawang script, at pasimplehin mo ang proseso sa pamamagitan ng pag-aalis ng pangangailangang manu-manong likhain ang 'asahan' na script.

Konklusyon

Nakakatulong ang command na 'expect' na i-automate ang mga interactive na input ng user kapag gumagawa ng Bash script. Kapag naibigay mo na ito nang may mga inaasahang halaga, tatakbo ang iyong script nang hindi humihinto, kahit na kailangan ang input ng user. Nakakita kami ng halimbawa ng pagtatrabaho sa command na 'expect', kabilang ang kung paano bumuo ng script na 'expect' gamit ang autoexpect program nang awtomatiko. Ayan yun!