HELP ASSIGN — VMS 4.6
The ASSIGN commands perform the following functions:
o Equate a logical name to a physical device name, a file
specification, or another logical name (see Name).
o Merge the contents of one queue with another (see /MERGE).
o Assign a logical queue to a device queue (see /QUEUE).
Additional information available:
Name
Creates a logical name and assigns an equivalence string, or a list
of strings, to the specified logical name.
Format:
ASSIGN equivalence-name[,...] logical-name[:]
Additional information available:
ParametersCommand QualifiersExamples
Parameters
equivalence-name[,...]
Defines the equivalence names to be associated with the logical name
in the specified logical name table. The equivalence name string
can contain from 1 to 255 characters. If the string contains any
characters other than alphanumerics, the dollar sign, or the
underscore character, enclose the string in quotation marks. If the
equivalence name contains quotation marks, enclose the string in
quotation marks and use two sets of quotation marks ("") in the
places where you want a quotation mark to occur.
When you specify an equivalence name that will be used as a file
specification, you must include the punctuation marks (colons,
brackets, periods) that would be required if the equivalence name
were used directly as a file specification. Therefore, if you
specify a device name as an equivalence name, terminate the device
name with a colon.
The ASSIGN command allows you to assign the same logical name to
more than one equivalence name. When you specify more than one
equivalence name for a logical name, you create a search list. See
Section 4.8 of the VAX/VMS DCL Concepts Manual for more information
on search lists.
logical-name
Specifies the logical name string. The logical name can have from 1
to 255 characters. (However, logical names entered in one of the
logical name directory tables, LNM$PROCESS_DIRECTORY or
LNM$SYSTEM_DIRECTORY, must be no more than 31 characters long, and
must not contain characters other than alphanumerics, the dollar
sign, and the underscore.)
If you terminate the logical name with a colon, the system removes
the colon before placing the name in a logical name table. (This
differs from the DEFINE command, which saves the colon.) By default,
the logical name is placed in the process logical name table.
If the logical name contains any characters other than alphanumeric
characters, the dollar sign, or the underscore, enclose the name in
quotation marks. If the logical name contains quotation marks,
enclose the name in quotation marks and use two sets of quotation
marks in the places where you want one set of quotation marks to
occur. Note that if you enclose a name in quotation marks, the case
of alphabetic characters is preserved.
Command Qualifiers
Additional information available:
/EXECUTIVE_MODE/GROUP/JOB/LOG/NAME_ATTRIBUTES
/PROCESS/SUPERVISOR_MODE/SYSTEM/TABLE/TRANSLATION_ATTRIBUTES
/USER_MODE
/EXECUTIVE_MODE
/EXECUTIVE_MODE Requires the user privilege SYSNAM to create an executive mode logical name. Creates an executive mode logical name in the specified table. If you specify the /EXECUTIVE_MODE qualifier and you do not have SYSNAM, then the ASSIGN command ignores the qualifier and creates a supervisor mode logical name.
/GROUP
/GROUP Requires the user privilege GRPNAM or SYSPRV to place a name in the group logical name table. Places the logical name in the group logical name table. Other users who have the same group number in their user identification codes (UICs) can access the logical name. The /GROUP qualifier is synonymous with /TABLE=LNM$GROUP.
/JOB
/JOB Places the logical name in the job-wide logical name table. All processes within the same job tree as the process creating the logical name can access the logical name. The /JOB qualifier is synonymous with /TABLE=LNM$JOB.
/LOG
/LOG (default) /NOLOG Controls whether a message is displayed when you define a logical name that supersedes an existing name.
/NAME_ATTRIBUTES
/NAME_ATTRIBUTES[=(keyword[,...])]
Specifies attributes for a logical name. By default, no attributes
are set. You can specify the following keywords for attributes:
CONFINE The name is not to be copied into a subprocess by the
SPAWN command. This keyword is meaningful only when you
create logical names in a private table. If you specify
this keyword for a logical name in a shareable table, it
is ignored.
The CONFINE attribute is also inherited from the logical
name table where the name is entered; if the logical
name table is "confined", then all names in the table
are "confined".
NO_ALIAS The logical name cannot be duplicated in this table with a
less privileged (outer) access mode. If another logical
name with the same name and an outer access mode already
exists in this table, the name is deleted.
If you specify only one keyword, you can omit the parentheses. Only
the attributes you specify are set.
/PROCESS
/PROCESS (default) Places the logical name in the process logical name table. The /PROCESS qualifier is synonymous with /TABLE=LNM$PROCESS.
/SUPERVISOR_MODE
/SUPERVISOR_MODE (default) Creates a supervisor mode logical name in the specified table.
/SYSTEM
/SYSTEM Requires the user privilege SYSNAM or SYSPRV to place a name in the group logical name table. Places the logical name in the system logical name table. All system users can access the logical name. The /SYSTEM qualifier is synonymous with /TABLE=LNM$SYSTEM.
/TABLE
/TABLE=name Requires WRITE access to the table if the table is shareable. Specifies the name of the logical name table in which the logical name is to be entered. You can use the /TABLE qualifier to specify a user-defined logical name table (created with the CREATE/NAME_TABLE command), to specify the process, job, group, or system logical name tables, or to specify the process or system logical name directory tables. If you specify the table name using a logical name that has more than one translation, the logical name is placed in the first table found. For example, if you specify ASSIGN/TABLE=LNM$FILE_DEV and LNM$FILE_DEV is equated to LNM$PROCESS, LNM$JOB, LNM$GROUP, and LNM$SYSTEM, then the logical name is placed in LNM$PROCESS. If you do not explicitly specify the /TABLE qualifier, the default is /TABLE=LNM$PROCESS (or /PROCESS).
/TRANSLATION_ATTRIBUTES
/TRANSLATION_ATTRIBUTES[=(keyword[,...])]
Equivalence-name qualifier.
Specifies one or more attributes that modify an equivalence string
of the logical name. You can specify the following keywords for
translation attributes:
CONCEALED Indicates that the equivalence string is a concealed
device name. When a concealed device name is defined,
the system displays the logical name, rather than the
equivalence string, in messages that refer to the
device. If you specified the CONCEALED attribute, then
the equivalence string must be a physical device name.
TERMINAL Indicates that the equivalence string should not be
translated iteratively; logical name translation should
terminate with the current equivalence string.
If you specify only one keyword, you can omit the parentheses. Only
the attributes you specify are set.
Note that different equivalence strings of the same logical name can
have different translation attributes specified.
/USER_MODE
/USER_MODE Creates a user mode logical name in the specified table. User mode logical names created within the process logical name table are used for the execution of a single image; for example, you can create a user mode logical name to allow an image executing in a command procedure to redefine SYS$INPUT. User mode entries are deleted from the process logical name table when any image executing in the process exits (that is, after any DCL command or user program that executes an image completes execution).
Examples
1. $ ASSIGN XXX1:[CHARLES] CHARLIE
$ PRINT CHARLIE:TEST.DAT
Job 274 entered on queue SYS$PRINT
The ASSIGN command associates the logical name CHARLIE with the
directory name [CHARLES] on the disk XXX1. Subsequent references to
the logical name CHARLIE result in the correspondence between the
logical name CHARLIE and the disk and directory specified. The
PRINT command queues a copy of the file XXX1:[CHARLES]TEST.DAT to
the system printer.
2. $ ASSIGN YYY2: TEMP:
$ SHOW LOGICAL TEMP
"TEMP" = "YYY2:" (LNM$PROCESS_TABLE)
$ DEASSIGN TEMP
The ASSIGN command equates the logical name TEMP to the device YYY2.
TEMP is created in supervisor mode and placed in the process logical
name table. The SHOW LOGICAL command verifies that the logical name
assignment was made. Note that the logical name TEMP was terminated
with a colon in the ASSIGN command, but that the command interpreter
deleted the colon before placing the name in the logical name table.
Thus, you can specify TEMP without a colon in the subsequent
DEASSIGN command. You should omit the colon in the SHOW LOGICAL
command (for example, SHOW LOGICAL TEMP).
3. $ CREATE/NAME_TABLE TABLE1
$ ASSIGN/TABLE=LNM$PROCESS_DIRECTORY TABLE1,-
_$ LNM$PROCESS,LNM$JOB,LNM$GROUP,LNM$SYSTEM LNM$FILE_DEV
$ ASSIGN/TABLE=TABLE1 -
_$ /TRANSLATION_ATTRIBUTES=CONCEALED DBA1: WORK_DISK
The CREATE/NAME_TABLE command creates the process private logical
name table TABLE1.
The first ASSIGN command ensures that TABLE1 is searched first in
any logical name translation of a file specification or device name
(because TABLE1 is the first item in the equivalence string for the
logical name LNM$FILE_DEV, which determines the default search
sequence of logical name tables whenever a device or file
specification is translated).
The second ASSIGN command assigns the logical name WORK_DISK to the
physical device DBA1, and places the name in TABLE1. The logical
name has the concealed attribute. Therefore, the logical name
WORK_DISK will be displayed in system messages.
4. $ ASSIGN/TABLE=LNM$PROCESS/TABLE=LNM$GROUP DBA0: SYSFILES
$ SHOW LOGICAL SYSFILES
"SYSFILES" = "DBA0:" (LNM$GROUP_000240)
This ASSIGN command contains conflicting qualifiers. When you
specify conflicting qualifiers, the ASSIGN command uses the last
qualifier specified. The response from the SHOW LOGICAL command
indicates that the name was placed in the group logical name table.
/MERGE
Removes all jobs from one queue and places them in another existing
queue. The /MERGE qualifier is required.
Format:
ASSIGN/MERGE target-queue[:] source-queue[:]
Additional information available:
Parameters
target-queue[:] Specifies the name of the queue to which the jobs will be directed. source-queue[:] Specifies the name of the queue whose jobs are to be reassigned to a new queue.
Examples
1. $ STOP/QUEUE/NEXT LPB0
$ STOP/QUEUE/REQUEUE=LPA0 LPB0
$ ASSIGN/MERGE LPA0 LPB0
The STOP/QUEUE/NEXT command prevents another job from executing on
queue LPB0. The STOP/QUEUE/REQUEUE command requeues the current job
that was running on LPB0 to the target queue LPA0. The ASSIGN/MERGE
command removes the remaining jobs from the LPB0 printer queue and
places them in the LPA0 printer queue.
/QUEUE
Assigns, or redirects, a logical queue to a single execution queue.
ASSIGN/QUEUE can be used only with printer or terminal queues. The
/QUEUE qualifier is required.
Format:
ASSIGN/QUEUE queue-name[:] logical-queue-name[:]
Additional information available:
Parameters
queue-name[:] Specifies the name of an execution queue to be associated with the specified logical queue name. The queue cannot be a logical queue, a generic queue, or a batch queue. logical-queue-name[:] Specifies the name of the logical queue that is to be associated with the specified execution queue.
Examples
1. $ INITIALIZE/QUEUE/DEFAULT=FLAG=ONE/START LPA0
$ INITIALIZE/QUEUE TEST_QUEUE
$ ASSIGN/QUEUE LPA0 TEST_QUEUE
$ START/QUEUE TEST_QUEUE
This example first initializes and starts the printer queue LPA0.
The LPA0 queue is set to have a flag page precede each job. The
second INITIALIZE/QUEUE command creates the logical queue
TEST_QUEUE. The ASSIGN/QUEUE command assigns the logical queue
TEST_QUEUE to the printer queue LPA0. The START/QUEUE command
starts the logical queue.
2. $ INITIALIZE/QUEUE/START LPB0
The ASSIGN/QUEUE command is not needed here because a logical queue
is not being initialized. A printer queue is being initialized;
LPB0 is the name of a line printer. After you issue the
INITIALIZE/QUEUE/START command, jobs can be queued to LPB0 for
printing.