Příkaz Linux očekávat hovoří s jinými interaktivními programy podle skriptu. Podle scénáře očekávat ví, co lze od programu „očekávat“ a jaká by měla být správná odpověď. Interpretovaný jazyk poskytuje větvení a řídicí struktury na vysoké úrovni pro směrování dialogu. Kromě toho může uživatel převzít kontrolu a komunikovat přímo, když je to požadováno, poté vrátit kontrolu do skriptu. Název očekávat pochází z nápadu poslat / očekávat sekvence popularizované uucp, Kermita další programy pro ovládání modemu. Na rozdíl od toho uucp, očekávat je zobecněn, takže jej lze spustit jako příkaz na úrovni uživatele s ohledem na jakýkoli program a úkol.
Co můžete očekávat?
Zde je například několik věcí, které může příkaz expect provést:
- Signalizujte svůj počítač, aby vás vytočil zpět, abyste se mohli přihlásit bez placení hovoru.
- Spusťte hru a pokud se optimální konfigurace neobjeví, restartujte ji znovu a znovu, dokud se neobjeví, a poté předejte kontrolu vám.
- Běh fsck, a v odpovědi na jeho otázky odpovězte Ano nebo Ne nebo vám vrátí kontrolu na základě předem stanovených kritérií.
- Připojte se k jiné síti a automaticky načtěte svou poštu tak, aby vypadala, jako by byla původně odeslána do místního systému.
- Přenášejte proměnné prostředí, aktuální adresář nebo jakýkoli druh informací napříč rlogin, telnet, spropitné, sunebo chgrp.
Existuje celá řada důvodů, proč shell nemůže tyto úkoly provádět. Všechny jsou možné s očekávat.
Používání
Expectk je směsí očekávat a Tk. Chová se přesně jako očekávat a Tk přát si. Expect lze také použít přímo v C nebo C ++ bez Tcl. Příkaz přijímá následující obecný tvar: expect [options] cmdfile
Očekávat čte cmdfile pro seznam příkazů k provedení. Očekávání může být vyvoláno implicitně v systémech, které podporují #! zápis označením skriptu jako spustitelného a vytvořením prvního řádku ve skriptu: #! / usr / local / bin / expect -f
Cesta samozřejmě musí přesně popisovat, kde očekávat životy; / usr / local / bin je jen příklad. The -C příznak předloží příkaz, který má být proveden před jakýmkoli ve skriptu. Příkaz by měl být citován, aby nedošlo k jeho rozbití shellem. Několik příkazů lze provést jediným -C jejich oddělením středníky. Příkazy jsou prováděny v pořadí, v jakém se objevují. Při použití expectk, tato možnost je specifikována jako -příkaz. The -d příznak umožňuje určitý diagnostický výstup, který primárně hlásí vnitřní aktivitu příkazů, jako je očekávání a interakce. The -D příznak umožňuje interaktivní debugger. Měla by následovat celočíselná hodnota. Debugger převezme kontrolu před další procedurou Tcl, pokud je hodnota nenulová nebo pokud a Ctrl + C je stisknuto nebo je zasažen bod zlomu nebo se ve skriptu objeví jiný vhodný příkaz debuggeru. The -F příznak předloží soubor, ze kterého se mají číst příkazy. Samotný příznak je volitelný, protože je užitečný pouze při použití #! zápis, takže na příkazovém řádku mohou být uvedeny další argumenty. Ve výchozím nastavení je soubor příkazů načten do paměti a spuštěn jako celek. Občas je žádoucí číst soubory jeden řádek po druhém. Chcete-li vynutit manipulaci s libovolnými soubory tímto způsobem, použijte -b vlajka. The -i příznak způsobí, že Očekává, že bude interaktivně vyžadovat příkazy, místo aby je četl ze souboru. Výzva je ukončena příkazem exit nebo na EOF. Příznak -i se předpokládá, pokud není použit ani příkazový soubor, ani -c. Příkaz podporuje několik dalších možností. Obraťte se na stránku očekávat Další pokyny a poznámky k použití.