⇤ ← Revision 1 as of 2023-01-22 23:20:01
Size: 6589
Comment:
|
Size: 3952
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 13: | Line 13: |
=== Useful === |
|
Line 15: | Line 17: |
`$BASHOPTS` is a colon-delimited list of [[Bash/ShellOptions|enabled shell options]]. | `$BASH_VERSION` is the current shell's version number. `$BASH_VERSINFO` is an array representing this information. |
Line 17: | Line 19: |
`$BASH_COMPAT` is the compat level of the shell. Setting to `4.2` or `42` is equivalent to using the `compat42` [[Bash/ShellOption#Compatibility_Mode|shell option. | `BASH_ENV` is a startup file used when `bash(1)` is used as a script interpretter. `$BASH_REMATCH` is an array set by the `=~` operator. The first item is the substring matching the entire regular expression. `${BASH_REMATCH[i]}` is the substring matching the ''i''th subexpression. `$BASH_XTRACEFD` will, if set to an integer corresponding to a valid [[Bash/FileDescriptor|file descriptor]], cause trace output to be written to that file descriptor. === Not Useful === `$BASHOPTS` is a colon-delimited list of [[Bash/ShellOption|enabled shell options]]. `$BASH_COMPAT` is the compat level of the shell. Setting to `4.2` or `42` is equivalent to using the `compat42` [[Bash/ShellOption#Compatibility_Mode|shell option]]. |
Line 20: | Line 34: |
`$BASH_LOADABLES_PATH` is a colon-separated list of directories searched for dynamically loadable builtins. |
|
Line 25: | Line 41: |
If `bash(1)` is called like `bash -c '...'`, `$BASH_EXECUTION_STRING` is set to the command string. | |
Line 26: | Line 43: |
`$BASH_ARGV` is an array containing all the arguments in the current shell call stack, while `$BASH_ARGC` is the count of those arguments. These are only set if [[Bash/ShellOptions#Extended_Debugging_Mode|extended debugging mode]] is on. |
`$BASH_ARGV` is an array containing all the arguments in the current shell call stack, while `$BASH_ARGC` is the count of those arguments. These are only set if [[Bash/ShellOption#Extended_Debugging_Mode|extended debugging mode]] is on. |
Line 32: | Line 47: |
`$BASH_SOURCE` is an array of source filenames corresponding to `$FUNCNAME`. Function `${FUNCNAME[i]}` is defined in file `${BASH_SOURCE[i]}`. | |
Line 33: | Line 49: |
Similarly, `$BASH_LINENO` is an array of line numbers that corresponds to `$FUNCNAME`. Function `${FUNCNAME[i]}` is called from line number `${BASH_LINENO[i]}`. | |
Line 34: | Line 51: |
The value is used to set the shell’s compatibility level. See Shell Compatibility Mode, for a description of the various compatibility levels and their effects. The value may be a decimal number (e.g., 4.2) or an integer (e.g., 42) corresponding to the desired compatibility level. If BASH_COMPAT is unset or set to the empty string, the compatibility level is set to the default for the current version. If BASH_COMPAT is set to a value that is not one of the valid compatibility levels, the shell prints an error message and sets the compatibility level to the default for the current version. The valid values correspond to the compatibility levels described below (see Shell Compatibility Mode). For example, 4.2 and 42 are valid values that correspond to the compat42 shopt option and set the compatibility level to 42. The current version is also a valid value. BASH_ENV If this variable is set when Bash is invoked to execute a shell script, its value is expanded and used as the name of a startup file to read before executing the script. See Bash Startup Files. BASH_EXECUTION_STRING The command argument to the -c invocation option. BASH_LINENO An array variable whose members are the line numbers in source files where each corresponding member of FUNCNAME was invoked. ${BASH_LINENO[$i]} is the line number in the source file (${BASH_SOURCE[$i+1]}) where ${FUNCNAME[$i]} was called (or ${BASH_LINENO[$i-1]} if referenced within another shell function). Use LINENO to obtain the current line number. BASH_LOADABLES_PATH A colon-separated list of directories in which the shell looks for dynamically loadable builtins specified by the enable command. BASH_REMATCH An array variable whose members are assigned by the ‘=~’ binary operator to the [[ conditional command (see Conditional Constructs). The element with index 0 is the portion of the string matching the entire regular expression. The element with index n is the portion of the string matching the nth parenthesized subexpression. BASH_SOURCE An array variable whose members are the source filenames where the corresponding shell function names in the FUNCNAME array variable are defined. The shell function ${FUNCNAME[$i]} is defined in the file ${BASH_SOURCE[$i]} and called from ${BASH_SOURCE[$i+1]} BASH_SUBSHELL Incremented by one within each subshell or subshell environment when the shell begins executing in that environment. The initial value is 0. If BASH_SUBSHELL is unset, it loses its special properties, even if it is subsequently reset. BASH_VERSINFO A readonly array variable (see Arrays) whose members hold version information for this instance of Bash. The values assigned to the array members are as follows: BASH_VERSINFO[0] The major version number (the release). BASH_VERSINFO[1] The minor version number (the version). BASH_VERSINFO[2] The patch level. BASH_VERSINFO[3] The build version. BASH_VERSINFO[4] The release status (e.g., beta1). BASH_VERSINFO[5] The value of MACHTYPE. BASH_VERSION The version number of the current instance of Bash. BASH_XTRACEFD If set to an integer corresponding to a valid file descriptor, Bash will write the trace output generated when ‘set -x’ is enabled to that file descriptor. This allows tracing output to be separated from diagnostic and error messages. The file descriptor is closed when BASH_XTRACEFD is unset or assigned a new value. Unsetting BASH_XTRACEFD or assigning it the empty string causes the trace output to be sent to the standard error. Note that setting BASH_XTRACEFD to 2 (the standard error file descriptor) and then unsetting it will result in the standard error being closed. |
`$BASH_SUBSHELL` is the current nesting level of shells. |
Bash Shell Variables
This is a list of special variables that are set in bash(1) to configure it's behavior, or by bash(1) to indicate state. For programming variables, including special ones, see here.
Contents
Bash
Useful
$BASHPID is the current shell's PID.
$BASH_VERSION is the current shell's version number. $BASH_VERSINFO is an array representing this information.
BASH_ENV is a startup file used when bash(1) is used as a script interpretter.
$BASH_REMATCH is an array set by the =~ operator. The first item is the substring matching the entire regular expression. ${BASH_REMATCH[i]} is the substring matching the ith subexpression.
$BASH_XTRACEFD will, if set to an integer corresponding to a valid file descriptor, cause trace output to be written to that file descriptor.
Not Useful
$BASHOPTS is a colon-delimited list of enabled shell options.
$BASH_COMPAT is the compat level of the shell. Setting to 4.2 or 42 is equivalent to using the compat42 shell option.
$BASH_ALIASES is an associative array of aliases. $BASH_CMDS is an associative array of builtins.
$BASH_LOADABLES_PATH is a colon-separated list of directories searched for dynamically loadable builtins.
$_ is, at first, the pathname used to call the shell. Thereafter every time a command is called, $_ is the last argument to that command. Furthermore, while a command is executed, $_ is set to the pathname used to call that command. This is exposed when a command inspects its environment.
$BASH_COMMAND is the command currently executing. If bash(1) is executing a trap, $BASH_COMMAND will show the command that triggered the trap.
If bash(1) is called like bash -c '...', $BASH_EXECUTION_STRING is set to the command string.
$BASH_ARGV is an array containing all the arguments in the current shell call stack, while $BASH_ARGC is the count of those arguments. These are only set if extended debugging mode is on.
In a similar manner, $BASH_ARGV0 is the name of the shell. It is identical to $0.
$BASH_SOURCE is an array of source filenames corresponding to $FUNCNAME. Function ${FUNCNAME[i]} is defined in file ${BASH_SOURCE[i]}.
Similarly, $BASH_LINENO is an array of line numbers that corresponds to $FUNCNAME. Function ${FUNCNAME[i]} is called from line number ${BASH_LINENO[i]}.
$BASH_SUBSHELL is the current nesting level of shells.
Directory Stack
$DIRSTACK is an array containing the directory stack.
Get Opts
The getopts builtin sets two variables:
$OPTARG is the most recent options's value
$OPTIND is the most recent option's index
Home
$HOME is the user's home directory.
Inter Field Separator
$IFS defines the characters that should be interpreted as separating tokens.
Frequently, this is only manipulated when writing a pipeline that specially delimits items with the null byte.
If $MAIL is set, bash(1) monitors it (assuming it is a mail file or Maildir directory) and informs the user of changes.
Similarly, $MAILPATH is a colon-delimited list of locations to monitor. If set, $MAIL is not monitored.
Path
$PATH is a colon-delimited list of directories searched for commands.
$CDPATH is similarly searched by the cd builtin.
Prompts
$PS1 is printed at the beginning of every command prompt.
$PS2 is printed at the beginning of run-on lines.
$PS3 is printed at the prompt in select menus.