Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
For 2023 (and 2024 ...) - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
What is Expect?

Expect is an extension to the Tcl language which provides three key new commands - spawn which lets you start up another process, send which lets you send information to that process and expect through which you can receive back responses from that process.

For the majority of users of Tcl, Expect is not relevant in their day to day use of the language. But for a significant minority, it is vital and indeed the whole reason that they're using Tcl in the first place.

Here's an example of an Expect session which connects to a remote host computer via ssh, grabs some data from that remote system, extracts vital reporting information from that system and gives a qucik, clear and easy report.

puts "This is a bit o' Tickle"
log_user 0
spawn ssh -l trainee
expect "sword: "
send "abc123\r"
expect {$ }
send "df -k\r"
expect {$ }
set igot $expect_out(buffer)
send "exit\r"
regexp {(\d+)%} $igot all numbah
puts "First reported disk slice is $numbah/100 full"
puts "That were easy, weren't it?"

Result is:

earth-wind-and-fire:~/oct07/camb grahamellis$ expect se1
This is a bit o' Tickle
First reported disk slice is 97/100 full
That were easy, weren't it?
earth-wind-and-fire:~/oct07/camb grahamellis$

Expect is used in test environments, in integrated cirsuit design, in general systems admin tasks ... and many more places. Anywhere that you want to automate command line actions. And you do ned a good understanding of Tcl before you can use it - we cover both Tcl and the handful of extra Expect commands on our public Tcl Programming course, and on private courses we can tailor the presentation to inlcude much more expect coverage.

We use Expect on our own web site ... have a look at our Server Status page and you'll get a report from various web servers where we host domains - it's genarated by an expect scrips which uses the ping utility to test all the hosts in parallel.

Note - the example above is a training example - a spike solution. A live piece of code would include various other error checking operations, handling situations where the remote connection failed, for example.
(written 2007-10-26, updated 2007-10-27)

Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
T211 - Tcl/Tk - What is Expect? Why use it?
  [286] Automating regular manual procedures - (2005-04-21)
  [435] Expect for Windows - (2005-09-04)
  [1173] Cheat Sheet / Check list for Expect maintainers - (2007-05-02)
  [1174] Installing Tcl and Expect on Solaris 10 - a checklist - (2007-05-02)
  [1411] Buffering of inputs to expect, and match order - (2007-10-27)
  [1469] Curley brackets v double quotes - Tcl, Tk, Expect - (2007-12-12)
  [1531] Expecting a item from a list of possibles - (2008-02-04)
  [1602] Automating processes through Expect - (2008-04-05)
  [2474] Using Tcl and Expect to automate repetitive jobs - (2009-10-24)
  [2489] Parallel Pinging, using Python Threads or Expect spawn lists - (2009-11-02)
  [3009] Expect in Perl - a short explanation and a practical example - (2010-10-22)
  [3286] Should we cover expect and/or Tk on our public Tcl courses? - (2011-05-11)
  [3572] Adding Expect on top of Tcl - what is it and where can I get a training course to learn about it? - (2012-01-08)
  [4405] Backup procedures - via backup server - (2015-01-24)
  [4678] Expect with Ruby - a training example to get you started - (2016-05-18)

Back to
Wireless hotel tips - FTP and Skype connections failing
Previous and next
Horse's mouth home
Forward to
Tcl / regsub - changing a string and using interesting bits
Some other Articles
The little gestures that can really count
Sparse and Greedy matching - Tcl 8.4
Tcl / regsub - changing a string and using interesting bits
What is Expect?
Wireless hotel tips - FTP and Skype connections failing
Reading from another process in Tcl (pipes and sockets)
Away or home - which do I prefer?
Sorting in Tcl - lists and arrays
Tcl - global, upvar and uplevel.
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page

This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2024: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/1409_.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb