x3270-script man page on Slackware

Man page or keyword search:  
man Server   14563 pages
apropos Keyword Search (all sections)
Output format
Slackware logo
[printable version]

X3270-SCRIPT(1)						       X3270-SCRIPT(1)

NAME
       Scripting Facilities for x3270, s3270, ws3270 and c3270

SYNOPSIS
       x3270 -script [ x3270-options ]
       s3270 [ s3270-options ]
       ws3270 [ ws3270-options ]
       Script ( command [ ,arg... ] )

DESCRIPTION
       The  x3270  scripting  facilities  allow the interactive 3270 emulators
       x3270 and c3270 to be operated under the control	 of  another  program,
       and form the basis for the script-only emulators s3270 and ws3270.

       There  are  two	basic scripting methods.  The first is the peer script
       facility, invoked by the x3270 -script switch, and the default mode for
       s3270  and  ws3270.   This  runs	 x3270,	 s3270 or ws3270 as a child of
       another process.	 Typically this would be  a  script  using  expect(1),
       perl(1),	 or  the co-process facility of the Korn Shell ksh(1).	Inthis
       mode, the emulator process looks for commands on	 its  standard	input,
       and places the responses on standard output and standard error output.

       The  second  method is the child script facility, invoked by the Script
       action in x3270, c3270, or s3270.   This	 runs  a  script  as  a	 child
       process	of  the	 emulator.  The child has access to pipes connected to
       the emulator; the emulator look for commands on one  pipe,  and	places
       the  responses on the other.  (The file descriptor of the pipe for com‐
       mands to the emulator is passed in the environment variable X3270INPUT;
       the  file  descriptor  of  the  pipe for responses from the emulator is
       passed in the environment variable X3270OUTPUT.)

       It is possible to mix the two methods.  A  script  can  invoke  another
       script with the Script action, and may also be implicitly nested when a
       script invokes the Connect action, and the ibm_hosts file  specifies  a
       login script for that host name.

       Commands are emulator actions; the syntax is the same as for the right-
       hand side of an Xt translation table entry (an x3270 or c3270  keymap).
       Unlike  translation  tables,  action names are case-insensitive, can be
       uniquely abbreviated, and the parentheses may be omitted if  there  are
       no  parameters.	Any input line that begins with # or ! is treaded as a
       comment and will be ignored.

       Any emulator action may be specified.  Several  specific	 actions  have
       been  defined  for  use	by  scripts, and the behavior of certain other
       actions (and of the emulators in general) is different when  an	action
       is initiated by a script.

       Some  actions generate output; some may delay completion until the cer‐
       tain external events occur, such as the host  unlocking	the  keyboard.
       The  completion	of every command is marked by a two-line message.  The
       first line is the current status of the emulator, documented below.  If
       the  command  is successful, the second line is the string "ok"; other‐
       wise it is the string "error".

STATUS FORMAT
       The status message consists of 12 blank-separated fields:

       1 Keyboard State
	      If the keyboard is unlocked, the letter U.  If the  keyboard  is
	      locked waiting for a response from the host, or if not connected
	      to a host, the letter L.	If the keyboard is locked  because  of
	      an  operator  error (field overflow, protected field, etc.), the
	      letter E.

       2 Screen Formatting
	      If the screen is formatted, the letter F.	 If unformatted or  in
	      NVT mode, the letter U.

       3 Field Protection
	      If  the  field containing the cursor is protected, the letter P.
	      If unprotected or unformatted, the letter U.

       4 Connection State
	      If connected to a host, the string C(hostname).  Otherwise,  the
	      letter N.

       5 Emulator Mode
	      If  connected  in	 3270 mode, the letter I.  If connected in NVT
	      line mode, the letter L.	If connected in	 NVT  character	 mode,
	      the letter C.  If connected in unnegotiated mode (no BIND active
	      from the host), the letter P.  If not connected, the letter N.

       6 Model Number (2-5)

       7 Number of Rows
	      The current number of rows defined on the screen.	 The host  can
	      request that the emulator use a 24x80 screen, so this number may
	      be smaller than the maximum number of  rows  possible  with  the
	      current model.

       8 Number of Columns
	      The  current number of columns defined on the screen, subject to
	      the same difference for rows, above.

       9 Cursor Row
	      The current cursor row (zero-origin).

       10 Cursor Column
	      The current cursor column (zero-origin).

       11 Window ID
	      The X window identifier for the main x3270 window, in  hexadeci‐
	      mal preceded by 0x.  For s3270, ws3270 and c3270, this is zero.

       12 Command Execution Time
	      The  time	 that  it took for the host to respond to the previous
	      commnd, in seconds with milliseconds after the decimal.  If  the
	      previous	command	 did  not  require  a host response, this is a
	      dash.

DIFFERENCES
       When an action is initiated by a script, the emulators behave  in  sev‐
       eral different ways:

       If  an  error  occurs  in processing an action, the usual pop-up window
       does not appear.	 Instead, the text is written to standard  error  out‐
       put.

       If  end-of-file	is detected on standard input, the emulator exits.  (A
       script can exit without killing the emulator by using  the  CloseScript
       action,	below.)	  Note that this applies to peer scripts only; end-of-
       file on the pipe connected to a child script simply causes the pipes to
       be closed and the Script action to complete.

       The  Quit action always causes the emulator to exit.  (When called from
       the keyboard, it will exit only if not connected to a host.)

       Normally, the AID actions (Clear, Enter, PF, and PA) will not  complete
       until  the  host	 unlocks  the  keyboard.  If the parameter to a String
       action includes a code for one these actions, it will also wait for the
       keyboard to unlock before proceeding.

       The  AidWait  toggle  controls  with behavior.  When this toggle is set
       (the default), actions block as described above.	 When  the  toggle  is
       clear,  AID  actions complete immediately.  The Wait(Output) action can
       then be used to delay a script until the host changes something on  the
       screen, and the Wait(Unlock) action can be used to delay a script until
       the host unlocks the keyboard, regardless of the state of  the  AidWait
       toggle.

       Note  that  the	Script	action	does not complete until end-of-file is
       detected on the pipe or the CloseScript action is called by  the	 child
       process.	  This	behavior  is  not affected by the state of the AidWait
       toggle.

SCRIPT-SPECIFIC ACTIONS
       The following actions have  been	 defined  or  modified	for  use  with
       scripts.	 (Note that unlike the display on the status line, row and col
       coordinates used in these  actions  use	[0,0]  as  their  origin,  not
       [1,1]).

       AnsiText
	      Outputs  whatever	 data  that has been output by the host in NVT
	      mode since the last time that AnsiText was called.  The data  is
	      preceded by the string "data: ", and has had all control charac‐
	      ters expanded into C backslash sequences.

	      This is a convenient way to capture NVT mode output  in  a  syn‐
	      chronous manner without trying to decode the screen contents.

       Ascii(row,col,rows,cols)

       Ascii(row,col,length)

       Ascii(length)

       Ascii  Outputs  an  ASCII  text	representation of the screen contents.
	      Each line is preceded by the string "data: ", and there  are  no
	      control characters.

	      If four parameters are given, a rectangular region of the screen
	      is output.

	      If three parameters are given,  length  characters  are  output,
	      starting at the specified row and column.

	      If  only the length parameter is given, that many characters are
	      output, starting at the cursor position.

	      If no parameters are given, the entire screen is output.

	      The EBCDIC-to-ASCII translation and output character set	depend
	      on the both the emulator character set (the -charset option) and
	      the locale.  UTF-8 and certain DBCS locales may result in multi-
	      byte  expansions	of  EBCDIC  characters that translate to ASCII
	      codes greater than 0x7f.

       AsciiField
	      Outputs an ASCII text representation of the field containing the
	      cursor.  The text is preceded by the string "data: ".

       Connect(hostname)
	      Connects	to a host.  The command does not return until the emu‐
	      lator is successfully connected in the proper mode, or the  con‐
	      nection fails.

       CloseScript(status)
	      Causes  the  emulator  to stop reading commands from the script.
	      This is useful to allow a peer script to exit, with the emulator
	      proceeding  interactively.   (Without this command, the emulator
	      would exit when it detected end-of-file on standard input.)   If
	      the script was invoked by the Script action, the optional status
	      is used as the return status of Script; if nonzero, Script  will
	      complete	with  an error, and if this script was invoked as part
	      of login through the ibm_hosts file, the connection will be bro‐
	      ken.

       ContinueScript(param)
	      Allows  a script that is waiting in a PauseScript action, below,
	      to continue.  The param  given  is  output  by  the  PauseScript
	      action.

       Disconnect
	      Disconnects from the host.

       Ebcdic(row,col,rows,cols)

       Ebcdic(row,col,length)

       Ebcdic(length)

       Ebcdic The same function as Ascii above, except that rather than gener‐
	      ating ASCII text, each character	is  output  as	a  hexadecimal
	      EBCDIC code, preceded by 0x.

       EbcdicField
	      The  same function as AsciiField above, except that it generates
	      hexadecimal EBCDIC codes.

       Info(message)
	      In x3270, pops  up  an  informational  message.	In  c3270  and
	      wc3270,  writes  an  informational  message to the OIA (the line
	      below the display).  Not defined for s3270 or tcl3270.

       Expect(text[,timeout])
	      Pauses the script until the specified text appears in  the  data
	      stream  from  the	 host,	or  the specified timeout (in seconds)
	      expires.	If no timeout is specified, the default is 30 seconds.
	      Text   can   contain   standard  C-language  escape  (backslash)
	      sequences.  No wild-card characters or pattern anchor characters
	      are understood.  Expect is valid only in NVT mode.

       MoveCursor(row,col)
	      Moves the cursor to the specified coordinates.

       PauseScript
	      Stops  a	script until the ContinueScript action, above, is exe‐
	      cuted.  This allows a script to wait for	user  input  and  con‐
	      tinue.  Outputs the single parameter to ContinueScript.

       PrintText([command,]filter))
	      Pipes  an	 ASCII	representation	of  the	 current  screen image
	      through the named filter, e.g., lpr.

       PrintText([html,],file,filename))
	      Saves the current screen contents in  a  file.   With  the  html
	      option, saves it as HTML, otherwise saves it as plain ASCII.

       PrintText(html,string)
	      Returns the current screen contents as HTML.

       ReadBuffer(Ascii)
	      Dumps  the  contents  of	the screen buffer, one line at a time.
	      Positions inside data fields are	generally  output  as  2-digit
	      hexadecimal  codes in the current display character set.	If the
	      current locale specifies UTF-8 (or certain DBCS character sets),
	      some  positions  may  be output as multi-byte strings (4-, 6- or
	      8-digit codes).  DBCS  characters	 take  two  positions  in  the
	      screen  buffer;  the  first  location  is output as a multi-byte
	      string in the current locale codeset, and the second location is
	      output  as  a  dash.   Start-of-field  characters (each of which
	      takes up a display  position)  are  output  as  SF(aa=nn[,...]),
	      where aa is a field attribute type and nn is its value.

			Attribute	   Values
			─────────────────────────────────────
			c0 basic 3270	   20 protected
					   10 numeric
					   04 detectable
					   08 intensified
					   0c non-display
					   01 modified
			41 highlighting	   f1 blink
					   f2 reverse
					   f4 underscore
					   f8 intensify
			42 foreground	   f0 neutral black
					   f1 blue
					   f2 red
					   f3 pink
					   f4 green
					   f5 turquoise
					   f6 yellow
					   f7 neutral white
					   f8 black
					   f9 deep blue
					   fa orange
					   fb purple
					   fc pale green
					   fd pale turquoise
					   fe grey
					   ff white
			43 character set   f0 default
					   f1 APL
					   f8 DBCS

	      Extended attributes (which do not take up display positions) are
	      output as SA(aa=nn), with aa and nn having the same  definitions
	      as  above	 (though the basic 3270 attribute will never appear as
	      an extended attribute).

	      In addition, NULL characters in the screen buffer	 are  reported
	      as  ASCII character 00 instead of 20, even though they should be
	      displayed as blanks.

       ReadBuffer(Ebcdic)
	      Equivalent to Snap(Ascii), but with the data  fields  output  as
	      hexadecimal  EBCDIC  codes  instead.   Additionally, if a buffer
	      position has the Graphic Escape attribute, it  is	 displayed  as
	      GE(xx).

       Snap   Equivalent to Snap(Save) (see below).

       Snap(Ascii,...)
	      Performs the Ascii action on the saved screen image.

       Snap(Cols)
	      Returns the number of columns in the saved screen image.

       Snap(Ebcdic,...)
	      Performs the Ebcdic action on the saved screen image.

       Snap(ReadBuffer)
	      Performs the ReadBuffer action on the saved screen image.

       Snap(Rows)
	      Returns the number of rows in the saved screen image.

       Snap(Save)
	      Saves  a	copy  of  the  screen  image and status in a temporary
	      buffer.  This copy can be queried with  other  Snap  actions  to
	      allow  a	script to examine a consistent screen image, even when
	      the  host	 may  be  changing  the	 image	(or  even  the	screen
	      dimensions) dynamically.

       Snap(Status)
	      Returns the status line from when the screen was last saved.

       Snap(Wait[,timeout],Output)
	      Pauses  the  script  until  the  host sends further output, then
	      updates the snap buffer with the new screen contents.  Used when
	      the  host	 unlocks  the keyboard (allowing the script to proceed
	      after an Enter, PF or PA action), but has not finished  updating
	      the  screen.  This action is usually invoked in a loop that uses
	      the Snap(Ascii) or Snap(Ebcdic) action to scan  the  screen  for
	      some  pattern  that  indicates that the host has fully processed
	      the last command.

	      The optional timeout parameter specifies a number of seconds  to
	      wait  before  failing  the  Snap action.	The default is to wait
	      indefinitely.

       Source(file)
	      Read and execute commands from  file.   Any  output  from	 those
	      commands	will  become  the  output  from Source.	 If any of the
	      commands fails, the Source  command  will	 not  abort;  it  will
	      continue reading commands until EOF.

       Title(text)
	      Changes the x3270 window title to text.

       Transfer(keyword=value,...)
	      Invokes IND$FILE file transfer.  See FILE TRANSFER below.

       Wait([timeout,] 3270Mode)
	      Used  when  communicating	 with a host that switches between NVT
	      mode and 3270 mode.  Pauses the script or macro until  the  host
	      negotiates  3270	mode,  then  waits  for	 a formatted screen as
	      above.

	      The optional timeout parameter specifies a number of seconds  to
	      wait  before  failing  the  Wait action.	The default is to wait
	      indefinitely.

	      For  backwards  compatibility,  Wait(3270)  is   equivalent   to
	      Wait(3270Mode)

       Wait([timeout,] Disconnect)
	      Pauses  the  script  until  the host disconnects.	 Often used to
	      after sending a logoff command to a VM/CMS host, to ensure  that
	      the session is not unintentionally set to disconnected state.

	      The  optional timeout parameter specifies a number of seconds to
	      wait before failing the Wait action.  The	 default  is  to  wait
	      indefinitely.

       Wait([timeout,] InputField)
	      A	 useful	 utility for use at the beginning of scripts and after
	      the Connect action.  In 3270 mode, waits	until  the  screen  is
	      formatted,   and	the  host  has	positioned  the	 cursor	 on  a
	      modifiable field.	 In NVT mode, waits until the  host  sends  at
	      least one byte of data.

	      The  optional timeout parameter specifies a number of seconds to
	      wait before failing the Wait action.  The	 default  is  to  wait
	      indefinitely.

	      For    backwards	  compatibility,   Wait	  is   equivalent   to
	      Wait(InputField).

       Wait([timeout,] NVTMode)
	      Used when communicating with a host that switches	 between  3270
	      mode  and	 NVT  mode.  Pauses the script or macro until the host
	      negotiates NVT mode, then waits for a  byte  from	 the  host  as
	      above.

	      The  optional timeout parameter specifies a number of seconds to
	      wait before failing the Wait action.  The	 default  is  to  wait
	      indefinitely.

	      For   backwards	compatibility,	Wait(ansi)  is	equivalent  to
	      Wait(NVTMode).

       Wait([timeout,] Output)
	      Pauses the script until the host sends  further  output.	 Often
	      needed  when  the host unlocks the keyboard (allowing the script
	      to proceed after a Clear, Enter, PF or PA action), but  has  not
	      finished	updating  the  screen.	 Also used in non-blocking AID
	      mode (see DIFFERENCES for	 details).   This  action  is  usually
	      invoked  in  a loop that uses the Ascii or Ebcdic action to scan
	      the screen for some pattern that indicates  that	the  host  has
	      fully processed the last command.

	      The  optional timeout parameter specifies a number of seconds to
	      wait before failing the Wait action.  The	 default  is  to  wait
	      indefinitely.

       Wait([timeout,] Unlock)
	      Pauses  the script until the host unlocks the keyboard.  This is
	      useful when operating in non-blocking AID mode  (toggle  AidWait
	      clear), to wait for a host command to complete.  See DIFFERENCES
	      for details).

	      The optional timeout parameter specifies a number of seconds  to
	      wait  before  failing  the  Wait action.	The default is to wait
	      indefinitely.

       Wait(timeout, Seconds)
	      Delays the script timeout seconds.  Unlike the  other  forms  of
	      Wait, the timeout is not optional.

       WindowState(mode)
	      If  mode	is  Iconic, changes the x3270 window into an icon.  If
	      mode is Normal, changes the x3270	 window	 from  an  icon	 to  a
	      normal window.

FILE TRANSFER
       The  Transfer  action  implements  IND$FILE file transfer.  This action
       requires that the IND$FILE program be installed on the  IBM  host,  and
       that  the  3270	cursor be located in a field that will accept a TSO or
       VM/CMS command.

       The Transfer action can be  entered  at	the  command  prompt  with  no
       parameters,  which  will	 cause it to prompt interactively for the file
       names and options.  It can also be invoked with	parameters  to	define
       the entire transfer.

       Because	of the complexity and number of options for file transfer, the
       parameters to the Transfer action take the unique form of option=value,
       and  can	 appear	 in any order.	Note that if the value contains spaces
       (such as a VM/CMS file name), then the entire parameter must be quoted,
       e.g., "HostFile=xxx foo a".  The options are:

       Option		Required?   Default   Other Values
       ────────────────────────────────────────────────────────
       Direction	   No	    receive   send
       HostFile		   Yes
       LocalFile	   Yes
       Host		   No	    tso	      vm
       Mode		   No	    ascii     binary
       Cr		   No	    remove    add, keep
       Remap		   No	    yes	      no
       Exist		   No	    keep      replace, append
       Recfm		   No		      fixed, variable,
					      undefined
       Lrecl		   No
       Blksize		   No
       Allocation	   No		      tracks,
					      cylinders,
					      avblock
       PrimarySpace	   No
       SecondarySpace	   No
       BufferSize	   No	    4096

       The option details are as follows.

       Direction
	      send to send a file to the host, receive to receive a file  from
	      the host.

       HostFile
	      The name of the file on the host.

       LocalFile
	      The name of the file on the local workstation.

       Host   The  type	 of  host  (which  dictates  the  form of the IND$FILE
	      command): tso (the default) or vm.

       Mode   Use  ascii  (the	default)  for  a  text	file,  which  will  be
	      translated  between  EBCDIC  and ASCII as necessary.  Use binary
	      for non-text files.

       Cr     Controls how Newline characters are  handled  when  transferring
	      Mode=ascii   files.    remove   (the   default)  strips  Newline
	      characters in local files before transferring them to the	 host.
	      add  adds	 Newline  characters  to  each host file record before
	      transferring  it	to  the	 local	workstation.   keep  preserves
	      Newline characters when transferring a local file to the host.

       Remap  Controls	text  translation for Mode=ascii files.	 The value yes
	      (the default) causes x3270-script to remap the  text  to	ensure
	      maximum  compatibility  between  the workstation's character set
	      and encoding and the host's EBCDIC  code	page.	The  value  no
	      causes  x3270-script to pass the text to or from the host as-is,
	      leaving all translation to the IND$FILE program on the host.

       Exist  Controls what happens when the destination file already  exists.
	      keep  (the  default)  preserves  the  file, causing the Transfer
	      action to fail.  replace overwrites the  destination  file  with
	      the  source  file.   append  appends  the	 source	 file  to  the
	      destination file.

       Recfm  Controls the record format of files created on the host.	 fixed
	      creates  a  file	with fixed-length records.  variable creates a
	      file with variable-length records.   undefined  creates  a  file
	      with  undefined-length  records  (TSO  hosts  only).   The Lrecl
	      option controls the record length or maximum record  length  for
	      Recfm=fixed and Recfm=variable files, respectively.

       Lrecl  Specifies the record length (or maximum record length) for files
	      created on the host.

       Blksize
	      Specifies the block size for files created on  the  host.	  (TSO
	      hosts only.)

       Allocation
	      Specifies	  the	units	for  the  TSO  host  PrimarySpace  and
	      SecondarySpace options: tracks, cylinders or avblock.

       PrimarySpace
	      Primary allocation for a file created on a TSO host.  The	 units
	      are given by the Allocation option.

       SecondarySpace
	      Secondary	 allocation  for  a  file  created on a TSO host.  The
	      units are given by the Allocation option.

       BufferSize
	      Buffer size for DFT-mode	transfers.   Can  range	 from  256  to
	      32768.   Larger  values  give better performance, but some hosts
	      may not be able to support them.

SEE ALSO
       expect(1)
       ksh(1)
       x3270(1)
       c3270(1)
       s3270(1)
       ws3270(1)

VERSION
       Version 3.3.12ga7

				24 August 2011		       X3270-SCRIPT(1)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Slackware

List of man pages available for Slackware

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net