Het Linux-commando verwachten praat met andere interactieve programma’s volgens een script. Naar aanleiding van het script, verwachten weet wat er van een programma kan worden “verwacht” en wat de juiste reactie moet zijn. Een geïnterpreteerde taal biedt vertakkingen en besturingsstructuren op hoog niveau om de dialoog te sturen. Bovendien kan de gebruiker de controle overnemen en indien gewenst rechtstreeks communiceren, en daarna de controle teruggeven aan het script. De naam verwachten komt voort uit het idee van sequenties voor verzenden/verwachten, gepopulariseerd door uucp, kermit, en andere modembesturingsprogramma’s. Echter, in tegenstelling tot uucp, verwachten is gegeneraliseerd zodat het kan worden uitgevoerd als een opdracht op gebruikersniveau met elk programma en elke taak in gedachten.
Wat verwachten kan doen?
Hier zijn bijvoorbeeld enkele dingen die de opdracht Expect kan doen:
- Geef uw computer een signaal om u terug te bellen, zodat u kunt inloggen zonder te betalen voor het gesprek.
- Start een spel en als de optimale configuratie niet verschijnt, herstart het dan steeds opnieuw totdat het dat wel doet, en geef dan de controle aan jou.
- Rennen fsck, en in antwoord op zijn vragen, antwoord: Ja of Nee of u de controle teruggeven, op basis van vooraf bepaalde criteria.
- Maak verbinding met een ander netwerk en haal uw e-mail automatisch op, zodat het lijkt alsof deze oorspronkelijk naar uw lokale systeem is verzonden.
- Draag omgevingsvariabelen, huidige directory of andere informatie over rlogin, telnet, tip, zo, of chgrp.
Er zijn verschillende redenen waarom de shell deze taken niet kan uitvoeren. Alles is mogelijk met verwachten.
Gebruik
verwacht is een mengsel van verwachten en Tk. Het gedraagt zich net als just verwachten en Tk’s wens. Verwacht kan ook direct in C of C++ worden gebruikt zonder Tcl. Het commando accepteert de volgende algemene vorm: expect [options] cmd-bestand
Verwachten leest cmd-bestand voor een lijst met uit te voeren opdrachten. Verwacht kan impliciet worden aangeroepen op systemen die de #! notatie door het script als uitvoerbaar te markeren en de eerste regel in het script te maken: #!/usr/local/bin/expect -f
Natuurlijk moet het pad nauwkeurig beschrijven waar verwachten leeft; /usr/local/bin is slechts een voorbeeld. De -c flag is een voorwoord van een opdracht die moet worden uitgevoerd voordat er een in het script staat. Het commando moet worden aangehaald om te voorkomen dat het door de shell wordt verbroken. Er kunnen meerdere commando’s worden uitgevoerd met een enkele -c door ze te scheiden met puntkomma’s. Opdrachten worden uitgevoerd in de volgorde waarin ze verschijnen. Tijdens gebruik verwacht, deze optie is gespecificeerd als -opdracht. De -d flag maakt enige diagnostische uitvoer mogelijk, die voornamelijk de interne activiteit van opdrachten zoals verwacht en interactie rapporteert. De -D flag maakt een interactieve debugger mogelijk. Een geheel getal moet volgen. De debugger neemt de controle over voor de volgende Tcl-procedure als de waarde niet nul is of als a Ctrl+C wordt ingedrukt of een onderbrekingspunt wordt bereikt, of een ander geschikt debugger-commando verschijnt in het script. De -f vlag is een voorwoord van een bestand waaruit commando’s kunnen worden gelezen. De vlag zelf is optioneel omdat deze alleen nuttig is bij het gebruik van de #! notatie, zodat andere argumenten op de opdrachtregel kunnen worden opgegeven. Standaard wordt het commandobestand in het geheugen ingelezen en in zijn geheel uitgevoerd. Het is af en toe wenselijk om bestanden regel voor regel te lezen. Om willekeurige bestanden op deze manier te laten behandelen, gebruikt u de -b vlag. De -ik vlag veroorzaakt Verwacht interactief om opdrachten te vragen in plaats van ze uit een bestand te lezen. De prompting wordt beëindigd via het exit-commando of bij EOF. De vlag -i wordt aangenomen als noch een opdrachtbestand noch -c wordt gebruikt. De opdracht ondersteunt verschillende extra opties. Raadpleeg de manpagina voor: verwachten voor aanvullende richtlijnen en gebruiksopmerkingen.