expect [-dDinN]
[-c cmds] [-[f|b]] cmdfile] [args]
USAGE
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.
#!/usr/local/bin/expect—
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”
|