Syndicate
Site (RSS, Atom)
Contact
Weblog status
Total entries: 78
Last entry: 2022-10-16 13:52:24
Last updated: 2022-10-16 14:12:58
powered by vim, bash, cat, grep, sed, and nb 3.4.2

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.


Posted by Frank W. Bergmann | Permanent link | File under: shell