HP OpenVMS DCL Dictionary
HP OpenVMS DCL Dictionary
September 2003
This manual provides detailed reference information and examples for HP
OpenVMS DCL commands and lexical functions.
Revision/Update Information:
This manual supersedes the HP OpenVMS DCL Dictionary, Version 7.3-1.
Software Version:
OpenVMS Alpha Version 7.3-2 OpenVMS VAX Version 7.3
Hewlett-Packard Company Palo Alto, California
© Copyright 2003 Hewlett-Packard Development Company, L.P.
The information contained herein is subject to change without notice.
The only warranties for HP products and services are set forth in the
express warranty statements accompanying such products and services.
Nothing herein should be construed as constituting an additional
warranty. HP shall not be liable for technical or editorial errors or
omissions contained herein.
Proprietary computer software. Valid license from HP required for
possession, use or copying. Consistent with FAR 12.211 and 12.212,
Commercial Computer Software, Computer Software Documentation, and
Technical Data for Commercial Items are licensed to the U.S. Government
under vendor's standard commercial license.
Intel, Itanium, and Intel® Itanium® Processor Family are
trademarks or registered trademarks of Intel Corporation in the U.S.
and other countries and are used under license.
Javatm is a US trademark of Sun Microsystems, Inc.
Microsoft® is a US registered trademark of Microsoft Corporation.
Motif is a trademark of The Open Group in the US and other countries.
PostScript® is a registered trademark of Adobe Systems Incorporated.
UNIX® is a registered trademark of The Open Group.
Windows®, Windows NT®, and MS Windows® are US registered
trademarks of Microsoft Corporation.
Confidential computer software. Valid license from HP and/or its
subsidiaries required for possession, use, or copying. Consistent with
FAR 12.211 and 12.212, Commercial Computer Software, Computer Software
Documentation, and Technical Data for Commercial Items are licensed to
the U.S. Government under vendor's standard commercial license.
Neither HP nor any of its subsidiaries shall be liable for technical or
editorial errors or omissions contained herein. The information in this
document is provided "as is" without warranty of any kind and is
subject to change without notice. The warranties for HP products are
set forth in the express limited warranty statements accompanying such
products. Nothing herein should be construed as constituting an
additional warranty.
Java and all Java-based marks are trademarks or registered trademarks
of Sun Microsystems, Inc. in the U.S. and other countries.
ZK9996
The HP OpenVMS documentation set is available on CD-ROM.
Preface
Intended Audience
This manual is intended for all users of the HP OpenVMS operating
system. It includes descriptions of all DIGITAL Command Language (DCL)
commands and lexical functions. If a command has any restrictions or
requires special privileges, they are noted in reference information
for that command.
Readers of this manual should be familiar with the material covered in
the OpenVMS User's Manual.
Document Structure
This manual contains detailed descriptions of each command and lexical
function. The commands are listed in alphabetical order, with the
command name appearing at the top of every page. The lexical functions
are grouped under the heading Lexical Functions (after the JOB command
description) and are listed alphabetically within that grouping; the
lexical function name appears at the top of each page.
The hardcopy version of the HP OpenVMS DCL Dictionary is a two-part manual. The first
volume contains commands beginning with the letters A to M (including
the lexical functions); the second volume contains commands beginning
with the letters N to Z.
Appendix A of this manual (in the second volume of the hardcopy manual)
lists the obsolete DCL commands and the current services that replace
them.
The commands that invoke language compilers and other OpenVMS optional
software products are not included in this manual; they are included in
the documentation provided with those products.
Related Documents
For an introduction to the OpenVMS operating system and for information
on using DCL, refer to the OpenVMS User's Manual. This manual is especially
recommended for novice users or users lacking experience with
interactive computer systems.
The OpenVMS User's Manual provides an overview of DCL command language concepts
and defines and illustrates good practices in constructing command
procedures with DCL commands and lexical functions.
Refer to the various utilities reference manuals for detailed
information about utilities. These manuals describe the DCL commands
that invoke the various utilities, describe any commands that you can
enter while running a utility, and provide reference information. The
HP OpenVMS DCL Dictionary provides only a brief description and format information
for each utility.
For message descriptions, use the online Help Message utility.
For additional information about HP OpenVMS products and services,
visit the following World Wide Web address:
http://www.hp.com/go/openvms
|
Reader's Comments
HP welcomes your comments on this manual. Please send comments to
either of the following addresses:
Internet
|
openvmsdoc@hp.com
|
Postal Mail
|
Hewlett-Packard Company
OSSG Documentation Group, ZKO3-4/U08
110 Spit Brook Rd.
Nashua, NH 03062-2698
|
How To Order Additional Documentation
For information about how to order additional documentation, visit the
following World Wide Web address:
http://www.hp.com/go/openvms/doc/order
|
Conventions
The following conventions may be used in this manual:
Ctrl/
x
|
A sequence such as Ctrl/
x indicates that you must hold down the key labeled Ctrl while
you press another key or a pointing device button.
|
PF1
x
|
A sequence such as PF1
x indicates that you must first press and release the key
labeled PF1 and then press and release another key or a pointing device
button.
|
[Return]
|
In examples, a key name enclosed in a box indicates that you press a
key on the keyboard. (In text, a key name is not enclosed in a box.)
In the HTML version of this document, this convention appears as
brackets, rather than a box.
|
...
|
A horizontal ellipsis in examples indicates one of the following
possibilities:
- Additional optional arguments in a statement have been omitted.
- The preceding item or items can be repeated one or more times.
- Additional parameters, values, or other information can be entered.
|
.
.
.
|
A vertical ellipsis indicates the omission of items from a code example
or command format; the items are omitted because they are not important
to the topic being discussed.
|
( )
|
In command format descriptions, parentheses indicate that you must
enclose choices in parentheses if you specify more than one.
|
[ ]
|
In command format descriptions, brackets indicate optional choices. You
can choose one or more items or no items. Do not type the brackets on
the command line. However, you must include the brackets in the syntax
for OpenVMS directory specifications and for a substring specification
in an assignment statement.
|
|
|
In command format descriptions, vertical bars separate choices within
brackets or braces. Within brackets, the choices are optional; within
braces, at least one choice is required. Do not type the vertical bars
on the command line.
|
{ }
|
In command format descriptions, braces indicate required choices; you
must choose at least one of the items listed. Do not type the braces on
the command line.
|
bold type
|
Bold type represents the introduction of a new term. It also represents
the name of an argument, an attribute, or a reason.
|
italic type
|
Italic type indicates important information, complete titles of
manuals, or variables. Variables include information that varies in
system output (Internal error
number), in command lines (/PRODUCER=
name), and in command parameters in text (where
dd represents the predefined code for the device type).
|
UPPERCASE TYPE
|
Uppercase type indicates a command, the name of a routine, the name of
a file, or the abbreviation for a system privilege.
|
Example
|
This typeface indicates code examples, command examples, and
interactive screen displays. In text, this type also identifies URLs,
UNIX commands and pathnames, PC-based commands and folders, and certain
elements of the C programming language.
|
-
|
A hyphen at the end of a command format description, command line, or
code line indicates that the command or statement continues on the
following line.
|
numbers
|
All numbers in text are assumed to be decimal unless otherwise noted.
Nondecimal radixes---binary, octal, or hexadecimal---are explicitly
indicated.
|
! (Comment Delimiter)
Indicates that everything that follows it on a command line is a
comment and should not be processed as part of a command.
Format
!
Example
|
$ !
$ WRITE SYS$OUTPUT "hello" ! This command should output "hello".
hello
$ FOO = " " ! This command defines FOO as a blank.
$ FOO WRITE SYS$OUTPUT "hello" ! This command should output "hello".
hello
$ FOO = "!" ! This command defines FOO as a !.
$ FOO WRITE SYS$OUTPUT "hello" ! This command should be ignored.
$
|
= (Assignment Statement)
Defines a symbolic name for a character string or integer value.
Format
symbol-name =[=] expression
symbol-name[bit-position,size] =[=] replacement-expression
Note
HP advises against assigning a symbolic name that is already a DCL
command name. HP especially discourages the assignment of symbols such
as IF, THEN, ELSE, and GOTO, which can affect the interpretation of
command procedures.
|
Parameters
symbol-name
Specifies a string of 1 to 255 characters for the symbol name. The name
can contain any alphanumeric characters from the DEC Multinational
character set, the underscore (_), and the dollar sign ($). However,
the name must begin only with an alphabetic character
(uppercase and lowercase characters are equivalent), an underscore, or
a dollar sign. Using one equal sign (=) places the symbol name in the
local symbol table for the current command level. Using two equal signs
(==) places the symbol name in the global symbol table.
expression
Names the value on the right-hand side of an assignment statement. This
parameter can consist of a character string, an integer, a symbol name,
a lexical function, or a combination of these entities. The components
of the expression are evaluated, and the result is assigned to the
symbol. All literal character strings must be enclosed in quotation
marks (" "). If the expression contains a symbol, the
expression is evaluated using the symbol's value.
The result of expression evaluation is either a character string or a
signed integer value. If the expression is evaluated as a string, the
symbol is assigned a string value. If the expression is evaluated as an
integer, the symbol is assigned an integer value. If the integer value
exceeds the capacity of the 4-byte buffer that holds it, no error
message is issued.
For a summary of operators used in expressions, details on how to
specify expressions, and details on how expressions are evaluated,
refer to the OpenVMS User's Manual.
DCL uses a buffer that is 1024 bytes long to hold an assignment
statement and to evaluate the expression. The length of the symbol
name, the expression, and the expression's calculations cannot exceed
1024 bytes.
[bit-position,size]
States that a binary overlay is to be inserted in the current 32-bit
value of a symbol name. The current value of the symbol name is
evaluated. Then, the specified number of bits is replaced by the result
of the replacement expression. The bit position is the location
relative to bit 0 at which the overlay is to occur. If the symbol you
are overlaying is an integer, then the bit position must be less than
32. The sum of the bit position and the size must be less than or equal
to 32.
If the symbol you are overlaying is a string, then the bit position
must be less than 6152. Because each character is represented using 8
bits, you can begin an overlay at any character through the 768th
character. (The 768th character starts in bit position 6144.) The sum
of the bit position and the size must be less than or equal to 6152.
The size is the number of bits to be overlaid. If you specify a size
that is greater than 32, DCL reduces the size to 32.
The brackets are required notation; no spaces are allowed between the
symbol name and the left bracket. Specify values for the bit position
and size as integers.
replacement-expression
Specifies the value that is used to overlay the symbol you are
modifying. Specify the replacement expression as an integer.
If the symbol you are modifying is an integer, the replacement
expression defines a bit pattern that is overlaid on the value assigned
to the symbol. If the symbol you are modifying is a character string,
the result of the replacement expression defines a bit pattern that is
overlaid on the specified bits of the character string. If the symbol
you are modifying is undefined, the result of the replacement
expression is overlaid on a null string.
Description
Symbols defined using assignment statements allow you to extend the
command language. At the interactive command level, you can use symbols
to define synonyms for commands or command lines. In command procedure
files, you can use symbols to provide for conditional execution and
substitution of variables.
The maximum number of symbols that can be defined at any time depends
on the following:
- The amount of space available to the command interpreter to contain
symbol tables and labels for the current process. The amount of space
is determined for each process by the system parameter CLISYMTBL.
- The size of the symbol names and their values. The command
interpreter allocates space for a symbol name and its value. In
addition, a few bytes of overhead are allocated for each symbol.
Examples
The assignment statement in this example assigns the user-defined
synonym LIST as a global symbol definition for the DCL command
DIRECTORY.
#2 |
$ COUNT = 0
$ LOOP:
$ COUNT = COUNT + 1
$ IF P'COUNT' .EQS. "" THEN EXIT
$ APPEND/NEW &P'COUNT' SAVE.ALL
$ DELETE &P'COUNT';*
$ IF COUNT .LT. 8 THEN GOTO LOOP
$ EXIT
|
This command procedure, COPYDEL.COM, appends files (specified as
parameters) to a file called SAVE.ALL. After a file has been appended,
the command procedure deletes the file. Up to eight file names can be
passed to the command procedure. The file names are assigned to the
symbols P1, P2, and so on.
The command procedure uses a counter to refer to parameters that are
passed to it. Each time through the loop, the procedure uses an IF
command to check whether the value of the current parameter is a null
string. When the IF command is scanned, the current value of the symbol
COUNT is concatenated with the letter P. The first time through the
loop, the IF command tests P1; the second time through the loop it
tests P2, and so on. After the expression P`COUNT' is evaluated, the
substitution of the file names that correspond to P1, P2, and so on is
automatic within the context of the IF command.
The APPEND and DELETE commands do not perform any substitution
automatically, because they expect and require file specifications as
input parameters. The ampersand (&) precedes the P`COUNT'
expression for these commands to force the appropriate symbol
substitution. When these commands are initially scanned each time
through the loop, COUNT is substituted with its current value. Then,
when the commands execute, the ampersand causes another substitution:
the first file specification is substituted for P1, the second file
specification is substituted for P2, and so on.
To invoke this procedure, use the following command:
$ @COPYDEL ALAMO.TXT BEST.DOC
|
The files ALAMO.TXT and BEST.DOC are each appended to the file SAVE.ALL
and are then deleted.
#3 |
$ A = 25
$ CODE = 4 + F$INTEGER("6") - A
$ SHOW SYMBOL CODE
CODE = -15 HEX = FFFFFFF1 Octal = 1777761
|
This example contains two assignment statements. The first assignment
statement assigns the value 25 to the symbol A. The second assignment
statement evaluates an expression containing an integer (4), a lexical
function (F$INTEGER("6")), and the symbol A. The result of
the expression, --15, is assigned to the symbol CODE.
#4 |
$ FILENAME = "JOBSEARCH" - "JOB"
$ FILETYPE = ".OBJ"
$ FILESPEC = FILENAME + FILETYPE
$ TYPE 'FILESPEC'
|
The first command in this example assigns the symbol FILENAME the value
"SEARCH". Notice that the string "SEARCH" is the
result of the string reduction operation performed by the expression.
The second command assigns the symbol FILETYPE the character string
".OBJ".
The symbols FILENAME and FILETYPE are then added together in an
expression assigned to the symbol FILESPEC. Because the values of the
symbols FILENAME and FILETYPE are concatenated, the resultant value
assigned to FILESPEC is the character string "SEARCH.OBJ".
The symbol FILESPEC is then used as a parameter for the TYPE command.
The single quotation marks (` ') request the command interpreter to
replace the symbol FILESPEC with its value SEARCH.OBJ. Thus, the TYPE
command types the file named SEARCH.OBJ.
#5 |
$ BELL[0,32] = %X07
$ SHOW SYMBOL BELL
BELL = ""
|
In this example, the symbol BELL is created with an arithmetic overlay
assignment statement. Because the symbol BELL is previously undefined,
the hexadecimal value 7 is inserted over a null character string and is
interpreted as the ASCII code for the bell character on a terminal.
When you issue the command SHOW SYMBOL BELL, the terminal beeps.
If the symbol BELL had been previously defined with an integer value,
the result of displaying BELL would have been to show its new integer
value.
#6 |
$ $=34
%DCL-W-NOCOMD, no command on line - reenter with alphabetic first
character
$ $$=34
$ SHOW SYMBOL $$
%DCL-W-UNDSYM, undefined symbol - check validity and spelling
$ SHOW SYMBOL $
$ = 34 Hex = 00000022 Octal = 00000000042
|
If you begin a symbol name with the dollar sign ($), use two dollar
signs ($$) because DCL discards the first instance of the dollar sign.
:= (String Assignment)
Defines a symbolic name for a character string value.
Format
symbol-name :=[=] string
symbol-name[offset,size] :=[=] replacement-string
Note
HP advises against assigning a symbolic name that is already a DCL
command name. HP especially discourages the assignment of symbols such
as IF, THEN, ELSE, and GOTO, which can affect the interpretation of
command procedures.
|
Parameters
symbol-name
Specifies a string of 1 to 255 characters for the symbol name. The name
can contain any alphanumeric characters from the DEC Multinational
character set, the underscore (_), and the dollar sign ($). However,
the name must begin only with an alphabetic character, an
underscore, or a dollar sign. Using one equal sign (:=) places the
symbol name in the local symbol table for the current command level.
Using two equal signs (:==) places the symbol name in the global symbol
table.
string
Names the character string value to be equated to the symbol. The
string can contain any alphanumeric or special characters. DCL uses a
buffer that is 1024 bytes long to hold a string assignment statement.
Therefore, the length of the symbol name, the string, and any symbol
substitution within the string cannot exceed 1024 characters.
With the string assignment statement (:=), you do not need to enclose a
string literal in quotation marks (" "). String values are
converted to uppercase automatically. Also, any leading and trailing
spaces and tabs are removed, and multiple spaces and tabs between
characters are compressed to a single space.
To prohibit uppercase conversion and to retain required space and tab
characters in a string, place quotation marks around the string. To use
quotation marks in a string, enclose the entire string within quotation
marks and use a double set of quotation marks within the string. For
example:
$ TEST := "this is a ""test"" string"
$ SHOW SYMBOL TEST
TEST = "this is a "test" string"
|
In this example, the spaces, lowercase letters, and quotation marks are
preserved in the symbol definition.
To continue a symbol assignment on more than one line, use the hyphen
(-) as a continuation character. For example:
$ LONG_STRING := THIS_SYMBOL_ASSIGNMENT_IS_A_VERY_LONG-
_$ _SYMBOL_STRING
|
To assign a null string to a symbol by using the string assignment
statement, do not specify a string. For example:
Specify the string as a string literal, or as a symbol or lexical
function that evaluates to a string literal. If you use symbols or
lexical functions, place single quotation marks (` ') around them to
request symbol substitution. See the OpenVMS User's Manual for more information
on symbol substitution.
You can also use the string assignment statement to define a foreign
command. Refer to the OpenVMS User's Manual for more information about foreign
commands.
[offset,size]
Specifies that a portion of a symbol value is to be overlaid with a
replacement string. This form of the string assignment statement
evaluates the value assigned to a symbol and then replaces the portion
of the value (defined by the offset and size) with the replacement
string. The brackets are required notation, and no spaces are allowed
between the symbol name and the left bracket.
The offset specifies the character position relative to the beginning
of the symbol name's string value at which replacement is to begin.
Offset values start at 0.
If the offset is greater than the offset of the last character in the
string you are modifying, spaces are inserted between the end of the
string and the offset where the replacement string is added. The
maximum offset value you can specify is 768.
The size specifies the number of characters to replace. Size values
start at 1.
Specify the offset and size as integer expressions. Refer to the
OpenVMS User's Manual for more information on integer expressions. The value of
the size plus the offset must not exceed 769.
replacement-string
Specifies the string that is used to overwrite the string you are
modifying. If the replacement string is shorter than the size argument,
the replacement string is filled with blanks on the right until it
equals the specified size. Then the replacement string overwrites the
string assigned to the symbol name. If the replacement string is longer
than the size argument, then the replacement string is truncated on the
right to the specified size.
You can specify the replacement string as a string literal, or as a
symbol or lexical function that evaluates to a string literal. If you
use symbols or lexical functions, place single quotation marks (` ')
around them to request symbol substitution. For more information on
symbol substitution, refer to the OpenVMS User's Manual.
Examples
#1 |
$ TIME := SHOW TIME
$ TIME
24-DEC-2001 11:55:44
|
|