blank.gif (43 bytes)

Church Of The
Swimming Elephant

Index | Description | Usage | Options | Variables | Hints | Bulletproof

expect [-dDinN] [-c cmds] [-[f|b]] cmdfile] [args]


Expect reads cmdfile for a list of commands to execute.  Expect may also be invoked implicitly on systems which support the #! notation by marking the script executable, and making the first line in your script: 

#!/usr/local/bin/expect -f
Of course, the path must accurately describe where Expect lives.  /usr/local/bin is just an example. 

The -c flag prefaces a command to be executed before any in the script.  The command should be quoted to prevent being broken up by the shell.  This option may be used multiple times.  Multiple commands may be executed with a single -c by separating them with semicolons.  Commands are executed in the order they appear.  (When using Expectk, this option is specified as -command.) 

The -d flag enables some diagnostic output, which primarily reports internal activity of commands such as expect and interact.  This flag has the same effect as “exp_internal 1” at the beginning of an Expect script, plus the version of Expect is printed.  (The strace command is useful for tracing statements, and the trace command is useful for tracing variable assignments.) (When using Expectk, this option is specified as -diag.) 

The -D flag enables an interactive debugger.  An integer value should follow.  The debugger will take control before the next Tcl procedure if the value is non-zero or if a ^C is pressed (or a breakpoint is hit, or other appropriate debugger command appears in the script).  See the README file or debug for more information on the debugger.  (When using Expectk, this option is specified as -Debug.) 

The -f flag prefaces a file from which to read commands from.  The flag itself is optional as it is only useful when using the #! notation (see above), so that other arguments may be supplied on the command line.  (When using Expectk, this option is specified as -file.) 

By default, the command file is read into memory and executed in its entirety.  It is occasionally desirable to read files one line at a time.  For example, stdin is read this way.  In order to force arbitrary files to be handled this way, use the -b flag.  (When using Expectk, this option is specified as -buffer.) 

If the string “-“ is supplied as a filename, standard input is read instead.  (Use “./-“ to read from a file actually named “-“.) 

The -i flag causes Expect to interactively prompt for commands instead of reading them from a file.  Prompting is terminated via the exit command or upon EOF.  See interpreter (below) for more information.  -i is assumed if neither a command file nor -c is used.  (When using Expectk, this option is specified as -interactive.) 

- may be used to delimit the end of the options.  This is useful if you want to pass an option-like argument to your script without it being interpreted by Expect.  This can usefully be placed in the #! line to prevent any flag-like interpretation by Expect.  For example, the following will leave the original arguments (including the script name) in the variable argv

Note that the usual getopt(3) and execve(2) conventions must be observed when adding arguments to the #! line. 

The file $exp_library/expect.rc is sourced automatically if present, unless the -N flag is used.  (When using Expectk, this option is specified as -NORC.) Immediately after this, the file ~/.expect.rc is sourced automatically, unless the -n flag is used.  If the environment variable DOTDIR is defined, it is treated as a directory and .expect.rc is read from there.  (When using Expectk, this option is specified as -norc.) This sourcing occurs only after executing any -c flags.

-v causes Expect to print its version number and exit.  (The corresponding flag in Expectk, which uses long flag names, is -version.) 

Optional args are constructed into a list and stored in the variable named argv. argc is initialized to the length of argv. 

argv0 is defined to be the name of the script (or binary if no script is used).  For example, the following prints out the name of the script and the first three arguments: 

send_user “$argv0 [lrange $argv 0 2]\n”



Protect yourself from cyberstalkers, identity thieves, and those who would snoop on you.
Stop spam from invading your inbox without losing the mail you want. We give you more control over your e-mail than any other service.
Block popups, ads, and malicious scripts while you surf the net through our anonymous proxies.
Participate in Usenet, host your web files, easily send anonymous messages, and more, much more.
All private, all encrypted, all secure, all in an easy to use service, and all for only $5.95 a month!

Service Details

Have you gone to church today?
All pages ©1999, 2000, 2001, 2002, 2003 Church of the Swimming Elephant unless otherwise stated
Church of the Swimming Elephant©1999, 2000, 2001, 2002, 2003 is a wholly owned subsidiary of Packetderm, LLC.

Packetderm, LLC
210 Park Ave #308
Worcester, MA 01609