Linux Expect Command

Linux Expect Command



Bash skripty usnadňují automatizaci úloh. Existuje mnoho způsobů, jak můžete automatizovat různé opakující se úkoly, abyste ušetřili čas a úsilí, včetně automatizace úkolů, které vyžadují vstup uživatele. Kromě toho Linux nabízí příkazy jako „očekávat“ pro snadnou práci s použitím skriptů.

Linuxový příkaz „expect“ vám umožňuje řídit, jak fungují skripty, které ke spuštění vyžadují vstup uživatele. Pokud váš skript vyžaduje vstup uživatele, aby mohl pokračovat ve vykonávání, existuje způsob, jak můžete tuto interaktivitu ovládat pomocí příkazu „expect“.







Začínáme s příkazem Linux Expect

Příkaz Linux „expect“ není nainstalován ve vašem systému. K instalaci však můžete použít různé metody. V našem případě používáme možnost „apt“ k instalaci pomocí následujícího příkazu:



$ sudo apt Nainstalujte očekávat



Po dokončení procesu zkontrolujte očekávanou verzi a ověřte, zda byla instalace úspěšná.





Jakmile budete mít informace o svém Linuxu k dispozici, další věcí je naučit se je používat k automatizaci interaktivních úloh.



Nejprve vytvořte jednoduchý skript Bash, abyste viděli, jak by fungoval interaktivně. Náš skript vyzve uživatele, aby zadal několik podrobností, a může pokračovat v běhu pouze po přečtení uživatelského vstupu.

Vytvořte Bash skript pomocí textového editoru dle vašeho výběru. Po napsání kódu skriptu uložte a ukončete textový editor.

Musíte nastavit soubor skriptu jako spustitelný. K tomu použijte následující syntaxi a přiřaďte ji k cílovému souboru skriptu:

$ sudo chmod +x < soubor >

Pro spuštění skriptu použijte příkaz „./“ následovaný názvem skriptu. Všimněte si, jak skript vyzve k zadání uživatele a může pokračovat pouze tehdy, když zadáme vstup.

Chcete-li takovou interaktivní relaci automatizovat, musíte použít příkaz „expect“ k odeslání požadovaných vstupů v případě potřeby namísto toho, aby je musel zadávat uživatel.

Než uvidíme, jak do hry vstupuje příkaz „očekávat“, vyhledejte jeho umístění pomocí příkazu „který“. Všimněte si cesty, kde se nachází příkaz „expect“, protože ji budete potřebovat při psaní skriptu „expect“.

V tomto případě je „expect“ uloženo v umístění /usr/bin/expect.

Znovu otevřete textový editor a vytvořte další skript. Tentokrát jej uložte s příponou „.exp“, abyste jej identifikovali jako očekávaný skript. Při psaní očekávaného skriptu můžete použít čtyři hlavní příkazy:

  1. potěr – Zahájí nový proces a přidá se k vyvolání skriptu, který si přejete automatizovat interaktivní sekce.
  2. poslat – Odešle požadovanou odpověď, kterou by jinak uživatel vložil.
  3. očekávat – Zobrazuje řádek v cílovém skriptu, který čeká na výstup.
  4. interagovat – Zahájí interakci s programem.

Pro tento případ máme náš „očekávaný“ skript napsaný tak, jak je uvedeno níže. Zvýraznili jsme cílový skript a dali jsme možnosti „očekávat“ a jakou odpověď dostanou.

Poslední řádek ukazuje konec skriptu a musí být zahrnut vždy, když píšete „očekávaný“ skript. Udělejte skript „očekávat“ spustitelný pomocí „chmod“.

Nakonec spusťte skript a sledujte, co se stane. Namísto toho, aby uživatel musel interagovat se skriptem vložením požadovaného vstupu, jsou hodnoty, které jsme odeslali ve skriptu „očekávat“, přidány jako uživatelské odpovědi. Tímto způsobem zvládnete automatizovat interaktivní uživatelské vstupy.

Předpokládejme, že dáváte přednost práci s proměnnými pro hodnoty, které chcete mít jako uživatelské vstupy; i to je možné. Nastavte cílové proměnné a jejich hodnoty a poté vyvolejte název proměnné, aby byla odeslána jako očekávaný uživatelský vstup. Podívejte se na následující příklad:

Když znovu spustíte tento upravený skript, stále získáte stejný cíl, pouze jste tentokrát použili proměnné.

Práce s Autoexpect

Můžete se vyhnout vytváření skriptu „expect“ pomocí příkazu „autoexpect“. Funguje to tak, že spustíte příkaz „autoexpect“ následovaný skriptem, pro který chcete vytvořit skript „expect“.

Například náš počáteční skript je „sample.sh“. K tomu používáme „autoexpect“ s následujícím příkazem:

$ automatické očekávání . / ukázka.sh

Jakmile jej spustíte, automaticky se vytvoří nový „očekávaný“ skript pod názvem „script.sh“ a budete vyzváni k zadání očekávaných odpovědí na uživatelské vstupy.

Vše, co potřebujete, je spustit vytvořený skript a zjednodušíte proces tím, že nebudete muset vytvářet „očekávaný“ skript ručně.

Závěr

Příkaz „expect“ pomáhá automatizovat interaktivní uživatelské vstupy při vytváření Bash skriptu. Jakmile jej dáte s očekávanými hodnotami, váš skript poběží bez zastavení, i když je vyžadován vstup uživatele. Viděli jsme příklad práce s příkazem „expect“, včetně toho, jak automaticky vygenerovat skript „expect“ pomocí programu autoexpect. A je to!