2011-05-19 17:44:08
Interaktionen mit expect
Auch wenn die "großen" Zeiten von Tcl/Tk ("Tickel-Tikay") vorbei sind, es gibt immer noch einige Leute, die die Scriptscprache und das Toolkit nutzen. Es ist stabil und gut dokumentiert. Ein aus dem Tcl-Umfeld entstandenes Programm ist expect, mit dem man Interaktionen bzw. Dialoge mit anderen Programmen oder auch Serverdiensten realisieren kann.
Die man-page zu expect erklärt die Grundlagen. Hier ist ein Beispiel für die Verwendung von expect aus einem bash-Script heraus:
> cat check_easyraid.sh
#!/bin/bash
CMD=$1
[ "$CMD" ] || {
echo "usage: echo PASSWD | $0 easyraidcommand ip-address"
exit 1
}
IP=$2
[ "$IP" ] || exit 2
ulimit -t 4
read -t 1 PASS
cat <
Das Script baut eine telnet-Session zu einem easyRAID-SAN auf
und schickt Befehle zum Testen ab. Man kann mit expect auch
ftp-Sessions oder andere Interaktionen aus Scripts heraus
einfach handhaben. Das Beispiel ist ein Mix aus bash und
expect, aber man kann mit dem passenden Shebang
natürlich auch "reine" expect-Scripts schreiben.