LinuxGuruz
  • Last 5 Forum Topics
    Replies
    Views
    Last post


The Web Only This Site
  • BOOKMARK

  • ADD TO FAVORITES

  • REFERENCES


  • MARC

    Mailing list ARChives
    - Search by -
     Subjects
     Authors
     Bodies





    FOLDOC

    Computing Dictionary




  • Text Link Ads






  • LINUX man pages
  • Linux Man Page Viewer


    The following form allows you to view linux man pages.

    Command:

    autoexpect

    
    
    

    SYNOPSIS

           autoexpect [ args ] [ program args...  ]
    
    
    

    INTRODUCTION

           autoexpect  watches you interacting with another program and creates an
           Expect script that  reproduces  your  interactions.   For  straightline
           scripts,  autoexpect  saves  substantial  time  over writing scripts by
           hand.  Even if you are an Expect expert, you will find it convenient to
           use autoexpect to automate the more mindless parts of interactions.  It
           is much easier to cut/paste hunks of autoexpect scripts  together  than
           to write them from scratch.  And if you are a beginner, you may be able
           to get away with learning nothing more about Expect than  how  to  call
           autoexpect.
    
           The  simplest way to use autoexpect is to call it from the command line
           with no arguments.  For example:
    
                % autoexpect
    
           By default, autoexpect spawns a shell for you.  Given  a  program  name
           and arguments, autoexpect spawns that program.  For example:
    
                % autoexpect ftp ftp.cme.nist.gov
    
           Once your spawned program is running, interact normally.  When you have
           exited the shell (or program that you specified), autoexpect will  cre-
           ate a new script for you.  By default, autoexpect writes the new script
           to "script.exp".  You can override this with the -f flag followed by  a
           new script name.
    
           The  following  example  runs  "ftp  ftp.cme.nist.gov"  and  stores the
           resulting Expect script in the file "nist".
    
                % autoexpect -f nist ftp ftp.cme.nist.gov
    
           It is important to understand that  autoexpect  does  not  guarantee  a
           working script because it necessarily has to guess about certain things
           - and occasionally it guesses wrong.  However, it is usually very  easy
           to identify and fix these problems.  The typical problems are:
    
                  ?   Timing.   A  surprisingly large number of programs (rn, ksh,
                      zsh,  telnet,  etc.)  and  devices  (e.g.,  modems)   ignore
                      keystrokes  that arrive "too quickly" after prompts.  If you
                      find your new script hanging up at one spot,  try  adding  a
                      short sleep just before the previous send.
    
                      You  can  force  this  behavior throughout by overriding the
                      variable "force_conservative" near the beginning of the gen-
                      erated  script.   This  "conservative" mode makes autoexpect
                      automatically pause briefly (one tenth of a  second)  before
                      sending  each character.  This pacifies every program I know
                      of.
    
                      The following  example  starts  autoexpect  in  conservative
                      mode.
    
                           autoexpect -c
    
                      The  -C flag defines a key to toggle conservative mode.  The
                      following example  starts  autoexpect  (in  non-conservative
                      mode)  with  ^L as the toggle.  (Note that the ^L is entered
                      literally - i.e., enter a real control-L).
    
                           autoexpect -C ^L
    
                      The following example starts autoexpect in conservative mode
                      with ^L as the toggle.
    
                           autoexpect -c -C ^L
    
                  ?   Echoing.  Many program echo characters.  For example, if you
                      type "more" to a shell, what autoexpect actually sees is:
    
                           you typed 'm',
                           computer typed 'm',
                           you typed 'o',
                           computer typed 'o',
                           you typed 'r',
                           computer typed 'r',
                           ...
    
                      Without specific knowledge of the program, it is  impossible
                      to  know  if  you  are  waiting to see each character echoed
                      before typing the next.  If autoexpect sees characters being
                      echoed,  it  assumes  that  it  can send them all as a group
                      rather  than  interleaving  them  the  way  they  originally
                      appeared.   This  makes  the  script  more pleasant to read.
                      However, it could conceivably be incorrect if you really had
                      to wait to see each character echoed.
    
                  ?   Change.   Autoexpect records every character from the inter-
                      action in the script.  This is desirable  because  it  gives
                      you  the  ability to make judgements about what is important
                      and what can be replaced with a pattern match.
    
                      On the other hand, if you use commands whose output  differs
                      from  run  to run, the generated scripts are not going to be
                      correct.  For example, the "date"  command  always  produces
                      different  output.   So using the date command while running
                      autoexpect is a sure way  to  produce  a  script  that  will
                      require editing in order for it to work.
    
                           autoexpect -P ^P
    
                      The  following example starts autoexpect in prompt mode with
                      ^P as the toggle.
    
                           autoexpect -p -P ^P
    
    
    

    OTHER FLAGS

           The -quiet flag disables informational messages produced by autoexpect.
    
           The  -Q flag names a quote character which can be used to enter charac-
           ters that autoexpect would otherwise consume because they are  used  as
           toggles.
    
           The  following  example shows a number of flags with quote used to pro-
           vide a way of entering the toggles literally.
    
                autoexpect -P ^P -C ^L -Q ^Q
    
    
    

    STYLE

           I don't know if there is a "style" for Expect programs  but  autoexpect
           should  definitely  not be held up as any model of style.  For example,
           autoexpect uses features of Expect that are intended  specifically  for
           computer-generated scripting.  So don't try to faithfully write scripts
           that appear as if they were generated by autoexpect.  This is not  use-
           ful.
    
           On  the  other hand, autoexpect scripts do show some worthwhile things.
           For example, you can see how any string must be quoted in order to  use
           it in a Tcl script simply by running the strings through autoexpect.
    
    
    

    SEE ALSO

           "Exploring  Expect: A Tcl-Based Toolkit for Automating Interactive Pro-
           grams" by Don Libes, O'Reilly and Associates, January 1995.
    
    
    

    AUTHOR

           Don Libes, National Institute of Standards and Technology
    
           expect and autoexpect are in the  public  domain.   NIST  and  I  would
           appreciate credit if these programs or parts of them are used.
    
                                     30 June 1995                    AUTOEXPECT(1)
    
  • MORE RESOURCE


  • Linux

    The Distributions





    Linux

    The Software





    Linux

    The News



  • MARKETING






  • Toll Free

webmaster@linuxguruz.com
Copyright © 1999 - 2016 by LinuxGuruz