The lexical function F$MODE returns a character string showing the mode
in which a process is executing. The F$MODE function has no arguments,
but must be followed by parentheses.
The F$MODE function is useful in command procedures that must operate
differently when executed interactively and noninteractively. You
should include either the F$MODE function or the F$ENVIRONMENT function
in your login command file to execute different commands for
interactive terminal sessions and noninteractive sessions.
If you do not include the F$MODE function to test whether your login
command file is being executed from an interactive process, and the
login command file is executed from a noninteractive process (such as a
batch job), the process may terminate if the login command file
contains commands that are appropriate only for interactive processing.
A command procedure can use the F$MODE function to test whether the
procedure is being executed during an interactive terminal session. It
can direct the flow of execution according to the results of this test.
This example shows the beginning of a login.com file that has two sets
of initialization commands: one for interactive mode and one for
noninteractive mode (including batch and network jobs). The IF command
compares the character string returned by F$MODE with the character
string INTERACTIVE; if they are not equal, control branches to the
label NON_INT_DEF. If the character strings are equal, the statements
following the label INTDEF are executed and the procedure exits before
the statements at NON_INT_DEF.