Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
Python and Tcl - public course schedule [here]
Private courses on your site - see [here]
Please ask about maintenance training for Perl, PHP, Lua, etc
 
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 192.168.200.67
 
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?
  [4678] Expect with Ruby - a training example to get you started - (2016-05-18)
  [4405] Backup procedures - via backup server - (2015-01-24)
  [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)
  [3286] Should we cover expect and/or Tk on our public Tcl courses? - (2011-05-11)
  [3009] Expect in Perl - a short explanation and a practical example - (2010-10-22)
  [2489] Parallel Pinging, using Python Threads or Expect spawn lists - (2009-11-02)
  [2474] Using Tcl and Expect to automate repetitive jobs - (2009-10-24)
  [1602] Automating processes through Expect - (2008-04-05)
  [1531] Expecting a item from a list of possibles - (2008-02-04)
  [1469] Curley brackets v double quotes - Tcl, Tk, Expect - (2007-12-12)
  [1411] Buffering of inputs to expect, and match order - (2007-10-27)
  [1174] Installing Tcl and Expect on Solaris 10 - a checklist - (2007-05-02)
  [1173] Cheat Sheet / Check list for Expect maintainers - (2007-05-02)
  [435] Expect for Windows - (2005-09-04)
  [286] Automating regular manual procedures - (2005-04-21)


Back to
Wireless hotel tips - FTP and Skype connections failing
Previous and next
or
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., 2019: 404 The Spa • Melksham, Wiltshire • United Kingdom • SN12 6QL
PH: 01225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/1409_Wha ... pect-.html • PAGE BUILT: Sat May 27 16:49:10 2017 • BUILD SYSTEM: WomanWithCat