Variables

When it is started, qsh initializes shell variables from the defined environment variables. A variable is used to store data. .

You can change the value of an existing variable or create a new variable by using one of these methods:

  • Assigning a variable using name=value.
  • Calling the read or getopts utilities.
  • Using the name parameter in a for loop or select conditional construct.
  • Using the ${name=value} parameter expansion.
  • Calling the declare or typeset utilities.

Variable names can contain alphabetic characters, numeric characters, or the underscore (_). A variable name cannot begin with a numeric character.

Variables set by qsh

_ (Temporary variable)
This variable is set by qsh to the last argument of the previous simple command.
EGID (Effective primary group identifer)
This variable set by qsh to the effective primary group identifier of the process at the time qsh is started. This variable is read-only.
EUID (Effective user identifer)
This variable set by qsh to the effective user identifier of the process at the time qsh is started. This variable is read-only.
GID (Primary group identifer)
This variable set by qsh to the primary group identifier of the process at the time qsh is started. This variable is read-only.
HOSTID (IP identifier of host)
This variable set by qsh to the IP address of the host system.
HOSTNAME (Name of host)
This variable set by qsh to the name of the host system.
HOSTTYPE (Type of host)
This variable set by qsh to a string that represents the type of the host system. The value is set to "powerpc".
JOBNAME (Qualified job name)
This variable is set by qsh to the qualified job name of the current job. The qualified job name is used by CL commands to identify a job.
LAST_JOBNAME (Qualified job name of last job)
This variable is set by qsh to the qualified job name of the last job it started. The qualified job name is used by CL commands to identify a job.
LINENO (Line number)
This variable is set by qsh to the current line number (decimal) in a script or function before it runs each command.
MACHTYPE (Machine type)
This variable is set by qsh to a string that represents the machine type. The value is set to "powerpc-ibm-os400".
OLDPWD (Previous working directory)
This variable is set by cd to the previous working directory after the current working directory is changed.
OPTARG (Option argument)
This variable is set by getopts when it finds an option that requires an argument.
OPTIND (Option index)
This variable is set by getopts to the index of the argument to look at for the next option. The variable is set to one when qsh, a script, or a function is invoked.
OSTYPE (Operating system type)
This variable set by qsh to a string that represents the operating system type. The value is set to "os400".
PPID (Parent process ID)
This variable is set by qsh to the decimal process ID of the process that invoked the current shell. In a subshell, the value of the variable is not changed even if the subshell is running in a different process.
PWD (Working directory)
This variable is set by cd to the current working directory after it is changed.
QSH_VERSION (Current version)
This variable is set by qsh to a string that represents the current version. The string is in the form VxRyMz where x is the version number, y is the release number, and z is the modification number. This variable is read-only.
RANDOM (Random number generator)
This variable is set by qsh to an integer random number between 1 and 32767 each time it is referenced. You can seed the random number generator by setting the variable.
REPLY (Reply variable)
This variable is set by read to the characters that are read when you do not specify any arguments and by the select compound command to the contents of the input line read from standard input.
TERMINAL_TYPE (Type of terminal)
This variable is set by qsh to the type of terminal attached to the standard file descriptors. The value is set to "5250" when attached to a 5250 display, to "REMOTE" when attached to a remote client, or to "PIPELINE" when attached to pipes.
UID (User identifer)
This variable set by qsh to the user identifier of the process at the time qsh is started. This variable is read-only.

Variables used by qsh

CDPATH (Search path for cd)
If the directory you specify for cd does not begin with a slash (/), qsh searches the directories listed in CDPATH in order for the specified directory. The value of the variable is a colon separated list of directories. The current working directory is specified by a period (.) or a null directory before the first colon, between two colons, or after the last colon. There is no default value.
ENV (Environment file)
When qsh is invoked, it performs parameter expansion, command substitution, and arithmetic expansion on this variable to generate the path name of a shell script to run in the current environment. It is typically used to set aliases, define functions, or set options. There is no default value.
HOME (Home directory)
The value of this variable is the path name of your home directory. The value is used for tilde expansion and as the default argument for cd. The value is set by default to the value specified in your user profile.
IFS (Internal field separators)
The value is a string treated as a list of characters that is used for field splitting and to split lines into fields with read. The first character of the value is used to separate arguments when expanding the * special parameter. The default value is "<space><tab><newline>".
LANG (Language locale)
This variable defines the locale category used for categories that are not specifically set with a variable starting with LC_. There is no default value.
LC_ALL (Locale settings)
This variable overrides the value of any variables starting with LC_. There is no default value.
LC_COLLATE (Locale collation)
This variable defines the collation relations between characters. There is no default value.
LC_CTYPE (Locale character classes)
This variable defines character types such as upper-case, lower-case, space, digit and, punctuation. There is no default value.
LC_MESSAGES (Locale message formatting)
This variable defines the format and values for affirmative and negative responses from applications. There is no default value.
LC_MONETARY (Locale monetary formatting)
This variable defines the monetary names, symbols, and other details. There is no default value.
LC_NUMERIC (Locale numeric formatting)
This variable defines the decimal point character for formatted input/output and string conversion functions. There is no default value.
LC_TIME (Locale time formatting)
This variable defines the date and time conventions, such as calendar used, time zone, and days of the week. There is no default value.
LC_TOD (Locale time zone)
This variable defines the time zone name, time zone difference, and Daylight Savings Time start and end. There is no default value.
NLSPATH (Search path for message catalogs)
When opening a message catalog, the system searches the directories listed in the order specified until it finds the catalog. The value of the variable is a colon separated list of directories. There is no default value.
PATH (Search path for commands)
If the command you specify does not begin with a slash (/), qsh searches the directories listed in the order specified until it finds the command to run. The value of the variable is a colon separated list of directories. The current working directory is specified by a period (.) or a null directory before the first colon, between two colons, or after the last colon. The default value is "/usr/bin:.:/QOpenSys/usr/bin".
PS1 (Primary prompt string)
When the interactive option is set, qsh performs parameter expansion, command substitution, and arithmetic expansion on the variable and displays it on stderr when qsh is ready to read a command. The default value is "$".
PS2 (Secondary prompt string)
When you enter <newline> before completing a command qsh displays the value of this variable on stderr. The default value is ">".
PS3 (Select command prompt)
When the select compound command is run, qsh performs parameter expansion, command substitution, and arithmetic expansion on the variable and displays it on stderr to prompt the user to select one of the choices displayed by select. The default value is "#?".
PS4 (Debug prompt string)
When the execution trace option is set and the interactive option is set, qsh performs parameter expansion, command substitution, and arithmetic expansion on the variable and displays it on stderr before each line in the execution trace. The default value is "+".
QIBM_CCSID (CCSID for translation)
When this variable is set to a numeric value, qsh and various utilities use the value for creating files and translating data from the CCSID of the job. The default value is "0" for the default job CCSID. A value of "65535" means no translation is done.
QIBM_CHILD_JOB_SNDINQMSG (Send inquiry message when child process starts)
When this variable is set to a positive numeric value, the parent process is sent an inquiry message with the qualified job name of the child process. The child process is held until you reply the message. By setting this variable, you can debug the program running in the child process by setting breakpoints before the program runs. The value of the variable is the level of descendant processes to debug. When set to 1, child processes are held, when set to 2 child and grandchild processes are held, etc. There is no default value.
QIBM_MULTI_THREADED (Start multi-thread capable processes)
This variable determines if processes started by qsh can create multiple threads. When the value of the variable is "Y", all child processes started by qsh can start threads. The default value is "N".
QSH_REDIRECTION_TEXTDATA (Process data as text for file redirection)
This variable determines if data read from or written to a file specified on a redirection is treated as text data or binary data. When the value of the variable is "Y", qsh treats the data read from or written to the file as text data. When the value of the variable is not "Y", qsh treats the data read from or written to the file as binary data. The default value is "Y".
QSH_USE_PRESTART_JOBS (Use pre-start jobs when available)
This variable determines if processes started by qsh use prestart jobs when available. When the value of the variable is "Y", qsh uses prestart jobs if they are available in the current subsystem. When the value of the variable is not "Y", or prestart jobs are not available, the processes started by qsh are batch immediate jobs. The default value is "Y".
SHELL (Path name of the shell)
When running a script file that does not contain "#!" on the first line, qsh uses the value of this variable as the path name of the shell interpreter to run the script. There is no default value.
TRACEFILE (Path name of trace file)
When the trace option is set, qsh uses the value of this variable as the path name of the file to store the trace information. The default value is "$HOME/qsh_trace".
TRACEOPT (Options for trace file)
When the trace option is set, qsh uses the value of this variable to determine how to handle the trace file. When the value of the variable is "UNLINK", qsh unlinks the trace file before opening it in a root shell. When the value of the variable is "KEEP", qsh keeps the current trace file. The default value is "UNLINK".

Other variables

QIBM_CMP_FILE_SIZE
This variable controls the maximum file size in bytes that cmp reads into an internal buffer for better performance. For files larger than the maximum size, cmp reads the files one byte at a time.
QIBM_OD_OUTPUT_FORMAT (Output format for od)
This variable controls the output format for the od utility. If the value is "OLD", od uses the old format from previous releases. The old format is not compatible with the current industry standard and its use is discouraged. There is no default value.
QIBM_QSH_CMD_ESCAPE_MSG (Send escape messages from QSH CL command)
This variable controls how messages are sent by the QSH CL command when the CMD parameter is specified. If the value is "Y", the QSH0005 message is sent as an escape message if the exit status is greater than zero and the QSH0006 and QSH0007 messages are always sent as escape messages. There is no default value.
QIBM_QSH_CMD_OUTPUT (Control output of QSH CL command)
This variable controls the output from the QSH CL command when the CMD parameter is specified. If the value is "STDOUT", the output is displayed on the C runtime terminal session. If the value is "NONE", the output is discarded. If the value is "FILE", the output is written to the specified file. If the value is "FILEAPPEND", the output is appended to the specified file. The default value is "STDOUT".
QIBM_QSH_INTERACTIVE_CMD (Initial interactive command)
When this variable is set to a command string, qsh runs the command when an interactive session is started. The variable must be set before calling the QSH CL command to have qsh run the command. There is no default value.
QIBM_QSH_INTERACTIVE_TYPE (Type of interactive session)
This variable sets the type of the interactive session started by the QSH CL command. If the value is "NOLOGIN", the interactive session is not a login session. Otherwise the interactive session is a login session. There is no default value.
QIBM_SYSTEM_ALWMLTTHD (Allow multi-threaded jobs for system)
This variable controls how the system utility behaves in a multi-thread capable job. If the value of the variable is "Y" and there is only one thread in the job, system runs the CL command in the job. Otherwise, system starts a new job to the run the CL command. There is no default value.
QIBM_SYSTEM_USE_ILE_RC
Set this environment variable to control how the system utility sets the exit status. If the value of the variable is "Y", system sets the exit status to the ILE return code of the program called by the CL command, or zero if the program did not set a return code. There is no default value.