Provided by: expect-lite_4.9.0-0ubuntu1_all 

NAME
expect-lite - a quick and easy command line automation tool
SYNOPSIS
expect-lite [-vv] -c <script> [-r <host>] [CONSTANT=value] [*DIRECTIVE] [-h|--help]
or
script.elt [-vv] [r=<host>] [CONSTANT=value] [*DIRECTIVE] [-h|--help]
DESCRIPTION
Written in Expect, it is designed to directly map an interactive terminal session into an automation
script. expect-lite scripts use punctuation character(s) at the beginning of each line to indicate the
action. Basic expect-lite scripts can be created by simply cutting and pasting text from a terminal
window into a script, and adding > < characters. Knowledge of Expect is not required.
usage: expect-lite remote_host=<remote_host_IP> cmd_file=<command_file> [user_dir=<user_dir>]
[const1=value1] [*DIRECTIVE]
or short form: expect-lite r=<remote_host_IP> c=<command_file> [d=<user_dir>] [const1=value1]
[*DIRECTIVE]
eg. ./expect-lite r=host-008 c=pm_alt.elt d=/local/sw myvar=myvalue *NOCOLOR
additional login options: user_name=<username> user_password=<password>
eg. ./expect-lite r=host-008 c=pm_alt.elt u=superuser p=mysecret
additional debug options: -v|-vv|--verbose
-v prints warnings, and infos (i.e. conditionals, dynamic var assignments)
-vv|--verbose
prints warnings and debug (i.e. expect match info)
eg. ./expect-lite -v r=host-008 c=pm_alt.elt
user defined help options: -h|--help
displays user defined help text (demarcated by ;;;) and variables defined in script which can be
overridden by constants on the command line
COMMAND SYNOPSIS
This is just a brief synopsis of expect-lite commands to serve as a reminder to those who already know
expect-lite; other documentation (such as the html document) must be consulted for more
complete descriptions.
Special Characters
> wait for a prompt, then send string to the remote host
>> send string to remote host, without waiting for prompt
< string/regex MUST be received from the remote host in the allotted timeout or the script will
FAIL!
<< literal string MUST be received (similar to '<' without regex evaluation)
-< NOT expect, if string/regex IS received from the remote host the script will FAIL!
~< fuzzy expect, expect an approximate number (decimal or hex)
# used to indicate comment lines, and have no effect
; are also used to indicate comment lines, but are printed to stdout (for logging)
;<colour> comment
add custom colour comment lines, colour may be blue, ltblue, gray, ltgray, cyan, black, pink,
purple, red, green, yellow
;; similar to above, but no extra newlines are printed (useful for printing script help)
;;; marks beginning and ending of a block of help text. Help Text is user defined help for a script
and is printed when -h or --help is on the command line
@num changes the expect timeout to num of seconds
:num sleeps for num seconds. Mili-seconds also supported e.g. :1.005 is 1005 mili-seconds
$var= static variable assignment at script invocation. Variable names limited to letters, numbers, and
underscore
+$var= dynamic variable assignment
+$var increment value of $var by 1 decimal
-$var decrement value of $var by 1 decimal
=$var math functions, perform bitwise and arithmetic operations: << >> & | ^ * / % + - (see math
functions)
=$str string math functions, if $str is a string, perform string operations: //search/replace/ + - (see
string math functions in documentation)
! indicates an embedded expect line
? c-style if/then/else in the format ?cond?action::else_action. code block are also supported in the
action and else_action statements. e.g.
?if $i < $n ? [
>send string
<expect string
]::[
>send else string
<expect else string
]
[ While Loop, using code blocks e.g.
[ $i < $n
+$i
]
Foreach Loop, using code blocks, each iteration $item is assigned the next item in the list. List
must be space delimited e.g.
$thelist=ab cd ef
[ $item=$thelist
>echo $item
]
% label - used for jumping to labels
~filename [constant=value] [constant=value with spaces]
includes a expect-lite script file, useful for creation of common variable files, or
'subprograms/subroutines'. Can pass optional parameters which will override (as constants) the
variables in the include file. Constant values passed may have spaces, no quotes are required
Directives
*~filename
Include a fail script, which expect-lite runs only if the main script fails
*/prompt/
Set a user defined prompt (defined in regex)
*TERM <N>
Immediately terminates script, and returns the value of N, if N is not specified returns 0
*PASS Immediately terminates script, and returns 0 (pass)
*FAIL Immediately fails script, and returns 1 (fail), unless *NOFAIL is set, then script will run to
completion, and return 1
*NOFAIL
Script will run to completion, and returns 1, if failure occurred during execution, or 0, if pass
(it is a sticky flag, and can not be unset)
**SHELL=<shell>
Configuration directive which sets the shell immediately after automatic login to remote host (see
setting the shell)
*INTERACT
A breakpoint which places user in interact mode, and pauses the script and turns control of the
keyboard over to the user
*NOINTERACT
Once set, will ignore all succeeding breakpoints (*INTERACT). This permits running a script or
scripts in an unattended regression. This can not be unset (it is a sticky flag)
*FORK <session>
Multiple session support. Directs expect-lite to open a new session and spawns a new shell
*SHOW VARS
Debug information, displays all expect-lite variables. Can be used in interact mode.
*SHOW ENV
Debug information, displays expect-lite environment, including state of directives, infinite loop
counter, log file name (if used), and environment variables. Can be used in interact mode.
*INFINITE_LOOP N
Infinite loop protection value, sets N as new value
*EOLS LF|*EOLS CRLF
Controls end of line sequence sent to remote host, either line feed, or carriage return + line
feed.
*DVPROMPT|*NODVPROMPT
Enable/disable the Dynamic Variable capture method to require a trailing prompt
(default=*DVPROMPT).
*NOINCLUDE
Once set, will ignore all succeeding include files (lines starting with ~). This was the default
behaviour in Library mode (introduced in v4.1). This behaviour is no longer default, and this
directive provides a method to previous behavior.
Logging
Logging encompasses two operations: 1) writing script output to a file, 2) controlling additional
messages, such as info, exp_info and warnings. All logging commands when used on the CLI will override
those inside the script
*LOG|*NOLOG
Enable/disable logging of standard out and messages to a file. The log file name will be
<script_name>.log saved in the script directory.(see Environment Variable EL_LOG_EXT below)
*LOG <file_name>|*LOGAPPEND <file_name>
Enable logging to a user specified path/file_name. When invoked on the CLI, the specified
file_name must end in ".log" (or as defined by EL_LOG_EXT) to avoid ambiguity
*INFO|*NOINFO
Enable/disable informational messages
*EXP_INFO|*NOEXP_INFO
Enable/disable "expected" messages (additionally use -V flag to enable)
*WARN|*NOWARN
Enable/disable warning messages
*DEBUG|*NODEBUG
Enable/disable debug messages
*NOCOLOR
Disables color on stdout
*TIMESTAMP <ISO|YMD|DMY|MDY>
Prints Date and Timestamp with milisecond accuracy, for each command sent, ISO is default.
Timestamps will be written to log file when *LOG is used.
*NOTIMESTAMP
Disables timestamp printing
Environment Variables
It is no longer necessary to hand edit the expect-lite script itself. All parameters such as
connect_method, login name and password are controlled via shell environment variables. This permits
individual customization in a multi user environment. It is recommended to save these values in .expect-
literc and source it from .bashrc or .cshrc. If set, the following environment variables will be used:
EL_CONNECT_METHOD
The method expect-lite uses to connect to remote host. Valid options are: none|telnet|ssh|ssh_key
Default is none
EL_CONNECT_USER
User name to use for login on remote host (telnet|ssh)
EL_CONNECT_PASS
Password to use for login on remote host (telnet|ssh)
EL_INFINITE_LOOP=N
Infinite loop protection value, sets N to user's default value
EL_DELAY_WAIT_FOR_HOST
Delay (in ms) to wait for host in Not Expect, and Dynamic Var Capture. 100 ms is a good value for
a local LAN, 200 ms if running across high speed internet
EL_REMOTE_HOST
Name or IP of remote host
EL_CMD_FILE
Name of expect-lite script to run
EL_USER_DIR
Change to this directory upon login before executing script
EL_SHELL
Start this shell (default bash) when using EL_CONNECT_METHOD=none
EL_DYN_VAR_PROMPT
Set the Dynamic Variable capture method to require a prompt (default=1). Disable by setting to 0.
EL_LOG_EXT
Set the log file name extension string (default=".log") which is appended to the script name when
using *LOG without file name argument or used to detect a log file name on the command line.
EL_* Any other shell environment variables starting with EL_ will become constants
Debugger (IDE)
The debugger performs three primary functions: 1) connecting the user to the remote host or device under
test, 2) monitoring special commands prefaced with the escape key for stepping, and other functions, and
3) the debugger will allow expect-lite script lines to be executed by either typing directly or pasting
them into the IDE.
The debugger is invoked at a breakpoint by placing the *INTERACT command in the script, or using by
instant-interact at anytime during the script execution by pressing ctrl+backslash ^\
<esc>s Step, execute next step in script
<esc>k sKip next step in script
<esc>c Continue execution of the script
<esc>v show Vars, display expect-lite variables and values
<esc>e show Environment, display expect-lite environment
<esc>0to9
display next N lines of script
<esc>-1to-9
display last N lines of script
ctrl+d Quit & Exit expect-lite
<esc>h display Help
[pasted line(s)]
execute any pasted line(s) from a script into the IDE
[type any expect-lite line]
execute any typed expect-lite script line
AUTHOR
Written by Craig Miller
REPORTING BUGS
Report bugs to <cvmiller at gmail dot com>.
COPYRIGHT
Copyright © 2008-2015 Craig Miller
Copyright © 2005-2007 FreeScale Semiconductor and Craig Miller
License BSD-Style: This is free software: you are free to change and redistribute it. There is NO
WARRANTY, to the extent permitted by law.
SEE ALSO
The full documentation for expect-lite is maintained as an HTML manual. Please see http://expect-
lite.sf.net/ for complete documentation.
expect-lite version 4.9.0 August 2015 EXPECT-LITE(1)