HP 3000 Manuals

Redirecting Command Input and Output [ Command Interpreter Access and Variables Programmer's Guide ] MPE/iX 5.0 Documentation


Command Interpreter Access and Variables Programmer's Guide

Redirecting Command Input and Output 

Redirection is accomplished with the use of the following simple
redirection indicators <, > or >>, followed by a file name, or
backreference to a file equation.

The < sign indicates that CI input comes from the specified file.  The >
sign indicates that CI output goes to the specified file.  The >> sign
also indicates that CI output goes to the specified file; however, output
is appended to the file (if it exists) so existing data is not
overwritten.

Redirection is supported for single files only; therefore, wildcarding on
the file name is meaningless and returns an error. 

The following are examples of CIOR.

Redirecting Command Input 

To redirect command input you would enter:

     command < infile 

Command can be any MPE/iX command except for the following:

   *   CALC

   *   COMMENT

   *   ELSEIF

   *   IF

   *   REMOTE

   *   SETVAR

   *   SETJCW

   *   TELL

   *   TELLOP

   *   WARN

   *   WHILE

and infile is the file that contains the input to that command.

For example:

     editor < edinput  

This invokes the EDITOR and instructs it to read data from the file
edinput.  The data is used by EDITOR as if it was being typed as input at
the terminal.

Redirecting Command Output 

To redirect command output you would enter:

     command > outfile 

Once again, command is as described above and outfile is the file which
contains the output of the command.

For example:

     showme > userfile 

This invokes the showme command and instructs it to write its output to a
file called userfile.

Redirecting Both Command Input and Output 

CIOR enables you to redirect both input and output at the same time.

To accomplish this, you would enter:

     command <infile >outfile 

For example,

     editor <edinput >$null 

This invokes EDITOR, instructs it to read input from file edinput and to
write output to $NULL. Output from EDITOR for includes the banner, the
prompt and all other EDITOR output.

Redirecting I/O with a File Backreference 

Backreferencing a file equation with CIOR is both simple and useful.  To
accomplish it you enter:

     file formaldesig1;parm...;parm... 
     file formaldesig2;parm...;parm... 
     command <*formaldesig1 >*formaldesig2 
[REV BEG]


NOTE The FILE command accepts the MPE escape syntax, allowing you to reference HFS (hierarchical file system) file names, but only on the right hand side of the equation. Refer to MPE/iX Commands Reference Manual (32650-90003) for more information about using the FILE command with HFS names.
[REV END] You may backreference both input and output to different file equations or either input or output to a single file equation. For example: file sourclst;save;rec=-80,,f,ascii listfile S@, qualify > *sourclst This example first establishes file equations to override redirection file defaults. It then issues a listfile command and directs its output to the file sourclst. The ;save option in the file equation keeps the file in the permanent domain. Without ;save the file sourclst would stay in the default (temporary) file domain. Redirection file defaults are discussed in a later section in this chapter. [REV BEG]
NOTE The LISTFILE command accepts the MPE escape syntax, allowing you to reference HFS (hierarchical file system) file names, but only on the right hand side of the equation. Refer to MPE/iX Commands Reference Manual (32650-90003) for more information about using the LISTFILE command with HFS names.
[REV END] Appending Redirected Command Output When the > sign is used, command output is redirected to the specified file and it begins writing output at the beginning of the file. When the >> sign is used, command output is redirected to the specified file, but it is appended to the file, so information already contained in the file is not overwritten. If >> is used and the file does not exist, it will be created. The append form of output redirection (>> sign) is useful when the output is a logging message or has a logging function, or when the user is creating a file with several commands. If your goal is to create a file containing only the output of the current command you should use the > sign and not the >> sign. [REV BEG] Redirection supports HFS (hierarchical file system) names. ECHO Hi There! >> ./somefile appends to the file ./somefile[REV END] To append redirected output enter: command >>outfile For example: echo text file1 > edinput echo find "patt1" >> edinput echo delete >> edinput echo keep >> edinput echo exit >> edinput The first line in this example produces the temporary file edinput. The next four lines append edit commands to this file. The result is a file of commands that might be read by the EDITOR subsystem with CIOR in the following command: editor <edinput >$null This command invokes the EDITOR and causes it to read the commands previously written to the file edinput. Command output, in this case, is redirected to $NULL. Printing the edinput file shows the commands that the EDITOR would read as input: print edinput text file1 find "patt1" delete keep exit Redirecting Output to a Device File To redirect output to a device file (such as a printer), simply backreference a file equation for the device as follows: file formaldesig;dev=... command >*formaldesig For example: file lp602;dev=epoc;env=lp602.hpenv.sys listfile @.@.myaccount,-2 > *lp602 This example would send a listing of all access control definition (ACD) data to the printer defined by the file equation with formal file designator lp602. The Append Option with Device Files. The redirection append option (use of the >> sign) produces a different result with device files than with disk files. For example, you could enter: file lp602;dev=epoc;env=lp602.hpenv.sys listfile @.@.myaccount,-2 > *lp602 listfile @.@.myaccount,4 >> *lp602 Both listfile commands are directed to a printer in this example. When the first listfile command finishes, its spoolfile is closed and made ready for printing. Once this happens to a spoolfile it cannot be reopened. For this reason, the second listfile command cannot append to the first file even though the >> sign has been used. The second listfile command simply writes another spoolfile.


MPE/iX 5.0 Documentation