📄 Extracted Text (37,279 words)
I
EFTA00315784
BASH(1) BASH(I)
NAME
bash — GNU Bourne-Again SHell
SYNOPSIS
bash [options] [file]
COPYRIGHT
Bash is Copyright © 1989-2005 by the Free Software Foundation, Inc.
DESCRIPTION
Bash is an sh-compatible command language interpreter that executes commands read from the standard
input or from a file. Bash also incorporates useful features from the Korn and C shells (ksh and esh).
Bash is intended to be a conformant implementation of the IEEE POSIX Shell and Tools specification
(IEEE Working Group 1003.2). Bash can be configured to be POSIX-conformant by default.
OPTIONS
In addition to the single-character shell options documented in the description of the set builtin command,
bash interprets the following options when it is invoked:
—c string If the —c option is present, then commands are read from string. If there are arguments after
the string, they are assigned to the positional parameters, starting with $0.
If the —i option is present, the shell is interactive.
Make bash act as if it had been invoked as a login shell (see INVOCATION below).
—r If the —r option is present, the shell becomes restricted (see RESTRICTED SHELL below).
—s If the —s option is present, or if no arguments remain after option processing, then commands
are read from the standard input. This option allows the positional parameters to be set when
invoking an interactive shell.
—D A list of all double-quoted strings preceded by $ is printed on the standard output. These are
the strings that are subject to language translation when the current locale is not C or POSIX.
This implies the —n option; no commands will be executed.
[—+10 [shopt_option]
shopt_option is one of the shell options accepted by the shopt builtin (see SHELL BUILTIN
COMMANDS below). If shopt_option is present, —O sets the value of that option; +0 unsets
it. If shopt_option is not supplied, the names and values of the shell options accepted by shopt
are printed on the standard output. If the invocation option is +0, the output is displayed in a
format that may be reused as input.
A — signals the end of options and disables further option processing. Any arguments after
the — are treated as filenames and arguments. An argument of — is equivalent to —.
Bash also interprets a number of multi-character options. These options must appear on the command line
before the single-character options to be recognized.
- -debugger
Arrange for the debugger profile to be executed before the shell starts. Turns on extended debug-
ging mode (see the description of the extdebug option to the shopt builtin below) and shell func-
tion tracing (see the description of the —o functrace option to the set builtin below).
—dump—po—strings
Equivalent to —D, but the output is in the GNU getter, po (portable object) file format.
- -dump—strings
Equivalent to —D.
- -help Display a usage message on standard output and exit successfully.
- -init—filefik
- -rcfile file
Execute commands from file instead of the standard personal initialization file %hasterc if the
shell is interactive (see INVOCATION below).
- -login
Equivalent to —I.
GNU Bash-3.l-betal 2005 Aug 27 1
EFTA00315785
BASH(1) BASH(I)
- -noediting
Do not use the GNU readline library to read command lines when the shell is interactive.
- -noprofile
Do not read either the system-wide startup file /etc/profile or any of the personal initialization files
7bash_profile, 7.bash_login, or 7.profile. By default, bash reads these files when it is invoked as
a login shell (see INVOCATION below).
- -norc Do not read and execute the personal initialization file 7.bashrc if the shell is interactive. This
option is on by default if the shell is invoked as sh.
- -posix
Change the behavior of bash where the default operation differs from the POSIX 1003.2 standard
to match the standard (posit. mode).
- -restricted
The shell becomes restricted (see RESTRICTED SHELL below).
- -verbose
Equivalent to —v.
—version
Show version information for this instance of bash on the standard output and exit successfully.
ARGUMENTS
If arguments remain after option processing, and neither the —c nor the —s option has been supplied, the first
argument is assumed to be the name of a file containing shell commands. If bash is invoked in this fashion.
$0 is set to the name of the file, and the positional parameters are set to the remaining arguments. Bash
reads and executes commands from this file, then exits. Bash's exit status is the exit status of the last com-
mand executed in the script. If no commands are executed, the exit status is 0. An attempt is first made to
open the file in the current directory, and, if no file is found, then the shell searches the directories in PATH
for the script.
INVOCATION
A login shell is one whose first character of argument zero is a —, or one started with the --login option.
An interactive shell is one started without non-option arguments and without the —c option whose standard
input and error are both connected to terminals (as determined by isatty(3)), or one started with the —i
option. PSI is set and S— includes i if bash is interactive, allowing a shell script or a startup file to test this
state.
The following paragraphs describe how bash executes its startup files. If any of the files exist but cannot be
read, bash reports an error. Tildes are expanded in file names as described below under Tilde Expansion
in the EXPANSION section.
When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it
first reads and executes commands from the file ktc/profile, if that file exists. After reading that file, it
looks for 7bash_profile, 7.bash_login, and %profile, in that order, and reads and executes commands from
the first one that exists and is readable. The -noprofile option may be used when the shell is started to
inhibit this behavior.
When a login shell exits, bash reads and executes commands from the file 7.bash_logout,if it exists.
When an interactive shell that is not a login shell is started, bash reads and executes commands from
7.bashrc, if that file exists. This may be inhibited by using the —norc option. The —rcfilefite option will
force bash to read and execute commands fromfile instead of 7.bashrc.
When bash is started non-interactively, to run a shell script, for example, it looks for the variable
BASH_ENV in the environment, expands its value if it appeals there, and uses the expanded value as the
name of a file to read and execute. Bash behaves as if the following command were executed:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
but the value of the PATH variable is not used to search for the file name.
GNU Bash-3.I -betal 2005 Aug 27
EFTA00315786
BASH(1) BASH(I)
If bash is invoked with the name sh, it tries to mimic the startup behavior of historical versions of sh as
closely as possible, while conforming to the POSIX standard as well. When invoked as an interactive login
shell, or a non-interactive shell with the --login option. it first attempts to read and execute commands
from ktc/profile and 7profile, in that order. The —noprofile option may be used to inhibit this behavior.
When invoked as an interactive shell with the name sh, bash looks for the variable ENV. expands its value
if it is defined, and uses the expanded value as the name of a file to read and execute. Since a shell invoked
as sh does not attempt to read and execute commands from any other startup files, the --rcfile option has
no effect. A non-interactive shell invoked with the name sh does not attempt to read any other startup files.
When invoked as sh, bash enters posix mode after the startup files are read.
When bash is started in posh mode, as with the --posix command line option, it follows the POSIX stan-
dard for startup files. In this mode, interactive shells expand the ENV variable and commands are read and
executed from the file whose name is the expanded value. No other startup files are read.
Bash attempts to determine when it is being run by the remote shell daemon, usually rshd. If bash deter-
mines it is being run by rshd, it reads and executes commands from 7.hashrc, if that file exists and is read-
able. It will not do this if invoked as sh. The --nore option may be used to inhibit this behavior, and the
—rcfile option may be used to force another file to be read, but rshd does not generally invoke the shell
with those options or allow them to be specified.
If the shell is started with the effective user (group) id not equal to the real user (group) id, and the —p
option is not supplied, no startup files are read, shell functions are not inherited from the environment, the
SHELLOPTS variable, if it appears in the environment, is ignored, and the effective user id is set to the real
user id. If the —p option is supplied at invocation, the startup behavior is the same, but the effective user id
is not reset.
DEFINITIONS
The following definitions are used throughout the rest of this document.
blank A space or tab.
word A sequence of characters considered as a single unit by the shell. Also known as a token.
name A word consisting only of alphanumeric characters and underscores, and beginning with an alpha-
betic character or an underscore. Also referred to as an identifier.
metacharacter
A character that, when unquoted, separates words. One of the following:
I & ; ( ) < > space tab
control operator
A token that performs a control function. It is one of the following symbols:
I I & && ; ;; ( ) I <newline>
RESERVED WORDS
Reserved words are words that have a special meaning to the shell. The following words are recognized as
reserved when unquoted and either the first word of a simple command (see SHELL GRAMMAR below) or
the third word of a case or for command:
! case do done elif else esac fi for function if in select then until
while } time Jf j]
SHELL GRAMMAR
Simple Commands
A simple command is a sequence of optional variable assignments followed by blank-separated words and
redirections, and terminated by a control operator. The first word specifies the command to be executed,
and is passed as argument zero. The remaining words are passed as arguments to the invoked command.
The return value of a simple command is its exit status, or I 28+n if the command is terminated by signal n.
Pipelines
A pipeline is a sequence of one or more commands separated by the character I. The format for a pipeline
is:
[time [—plI 1 ! 1 command [ I command2 ... I
GNU Bash-3.l -betal 2005 Aug 27 3
EFTA00315787
BASH(I) BASH(I)
The standard output of command is connected via a pipe to the standard input of command2. This connec-
tion is performed before any redirections specified by the command (see REDIRECTION below).
The return status of a pipeline is the exit status of the last command, unless the pipefail option is enabled.
If pipefail is enabled, the pipeline's return status is the value of the last (rightmost) command to exit with a
non-zero status, or zero if all commands exit successfully. If the reserved word ! precedes a pipeline, the
exit status of that pipeline is the logical negation of the exit status as described above. The shell waits for
all commands in the pipeline to terminate before returning a value.
If the time reserved word precedes a pipeline, the elapsed as well as user and system time consumed by its
execution are reported when the pipeline terminates. The -p option changes the output format to that spec-
ified by POSIX. The TIMEFORMAT variable may be set to a format string that specifies how the timing
information should be displayed; see the description of TIMEFORMAT under Shell Variables below.
Each command in a pipeline is executed as a separate process (i.e., in a subshell).
Lists
A list is a sequence of one or more pipelines separated by one of the operators ;, &, &&, or , and option-
ally terminated by one of ;. &, or <newline>.
Of these list operators, && and have equal precedence, followed by ; and &, which have equal prece-
dence.
A sequence of one or more newlines may appear in a list instead of a semicolon to delimit commands.
If a command is terminated by the control operator &, the shell executes the command in the backgmund in
a subshell. The shell does not wait for the command to finish, and the return status is 0. Commands sepa-
rated by a ; are executed sequentially; the shell waits for each command to terminate in turn. The return
status is the exit status of the last command executed.
The control operators && and denote AND lists and OR lists, respectively. An AND list has the form
command/ && command2
command2 is executed if, and only if, conunandI returns an exit status of zero.
An OR list has the form
command] command2
command2 is executed if and only if command! returns a non-zero exit status. The return status of AND
and OR lists is the exit status of the last command executed in the list.
Compound Commands
A compound command is one of the following:
(list) list is executed in a subshell environment (see COMMAND EXECUTION ENVIRONMENT below).
Variable assignments and builtin commands that affect the shell's environment do not remain in
effect after the command completes. The return status is the exit status of list.
( list; } list is simply executed in the current shell environment. list must be terminated with a newline or
semicolon. This is known as a group command. The return status is the exit status of list. Note
that unlike the metacharacters ( and ), { and ) are reserved words and must occur where a reserved
word is permitted to be recognized. Since they do not cause a word break, they must be separated
from list by whitespace.
((expression))
The expression is evaluated according to the rules described below under ARITHMETIC EVALUA-
TION. If the value of the expression is non-zero, the return status is 0; otherwise the return status
is I. This is exactly equivalent to let "expression".
IL expression II
Return a status of 0 or I depending on the evaluation of the conditional expression expression.
Expressions are composed of the primaries described below under CONDITIONAL EXPRES-
SIONS. Word splitting and pathname expansion are not performed on the words between the [I
GNU Bash-3.l-beta! 2005 Aug 27 4
EFTA00315788
BASH(1) BASH(I)
and 11; tilde expansion, parameter and variable expansion, arithmetic expansion, command substi-
tution, process substitution, and quote removal are performed. Conditional operators such as —f
must be unquoted to be recognized as primaries.
When the == and != operators are used, the string to the right of the operator is considered a pat-
tern and matched according to the rules described below under Pattern Matching. If the shell
option nocasematch is enabled, the match is performed without regard to the case of alphabetic
characters. The return value is 0 if the string matches or does not match the pattern, respectively,
and I otherwise. Any part of the pattern may be quoted to force it to be matched as a string.
An additional binary operator, lc is available, with the same precedence as =-- and !=. When it is
used, the string to the right of the operator is considered an extended regular expression and
matched accordingly (as in regex(3)). The return value is 0 if the string matches the pattern, and 1
otherwise. If the regular expression is syntactically incorrect, the conditional expression's return
value is 2. If the shell option nocasematch is enabled, the match is performed without regard to
the case of alphabetic characters. Substrings matched by parenthesized subexpressions within the
regular expression are saved in the array variable BASH_REMATCH. The element of
BASH_REMATCH with index 0 is the portion of the string matching the entire regular expres-
sion. The element of BASH_REMATCH with index n is the portion of the string matching the
nth parenthesized subexpression.
Expressions may be combined using the following operators, listed in decreasing order of prece-
dence:
(expression)
Returns the value of expression. This may be used to override the normal precedence of
operators.
! expression
True if expression is false.
expression! && expression2
True if both expression] and expression2 are true.
expression! expression2
True if either expression! or expression2 is true.
The && and operators do not evaluate expression2 if the value of expression! is sufficient to
determine the return value of the entire conditional expression.
for name [ in word]; do list ; done
The list of words following in is expanded, generating a list of items. The variable name is set to
each element of this list in turn, and list is executed each time. If the in word is omitted, the for
command executes list once for each positional parameter that is set (see PARAMETERS below).
The return status is the exit status of the last command that executes. If the expansion of the items
following in results in an empty list, no commands are executed, and the return status is 0.
for (( erprl ; expr2 ; expr3)) ; do list ; done
First, the arithmetic expression exprl is evaluated according to the rules described below under
ARITHMETIC EVALUATION. The arithmetic expression expr2 is then evaluated repeatedly until
it evaluates to zero. Each time expr2 evaluates to a non-zero value, list is executed and the arith-
metic expression expr3 is evaluated. If any expression is omitted, it behaves as if it evaluates to I.
The return value is the exit status of the last command in list that is executed, or false if any of the
expressions is invalid.
select name [ in word]; do list ; done
The list of words following in is expanded, generating a list of items. The set of expanded words
is printed on the standard error, each preceded by a number. If the in word is omitted, the posi-
tional parameters are printed (see PARAMETERS below). The PS3 prompt is then displayed and a
line read from the standard input. If the line consists of a number corresponding to one of the dis-
played words, then the value of name is set to that word. If the line is empty, the words and
prompt are displayed again. If EOF is read, the command completes. Any other value read causes
GNU Bash-3.I -beta I 2005 Aug 27 5
EFTA00315789
BASH(I) BASH(I)
name to be set to null. The line read is saved in the variable REPLY. The list is executed after
each selection until a break command is executed. The exit status of select is the exit status of the
last command executed in list, or zero if no commands were executed.
case word in i i(1pattern [1 pattern 1 ...) list ;;1 esac
A case command first expands word, and tries to match it against each pattern in turn, using the
same matching rules as for pathname expansion (see Pathname Expansion below). If the shell
option nocasematch is enabled, the match is performed without regard to the case of alphabetic
characters. When a match is found, the corresponding list is executed. After the first match, no
subsequent matches are attempted. The exit status is zero if no pattern matches. Otherwise, it is
the exit status of the last command executed in list.
if list; then list; I elif list; then fist ... else list; 1 fi
The if list is executed. If its exit status is zero, the then list is executed. Otherwise, each elif list
is executed in turn, and if its exit status is zero, the corresponding then list is executed and the
command completes. Otherwise, the else list is executed, if present. The exit status is the exit sta-
tus of the last command executed, or zero if no condition tested true.
while list; do list; done
until list; do list; done
The while command continuously executes the do list as long as the last command in list returns
an exit status of zero. The until command is identical to the while command, except that the test
is negated; the do list is executed as long as the last command in list returns a non-zero exit status.
The exit status of the while and until commands is the exit status of the last do list command
executed, or zero if none was executed.
Shell Function Definitions
A shell function is an object that is called like a simple command and executes a compound command with
a new set of positional parameters. Shell functions are declared as follows:
function name 0 compound—conunand [redirection]
This defines a function named name. The reserved word function is optional. If the function
reserved word is supplied, the parentheses are optional. The body of the function is the compound
command compound—command (see Compound Commands above). That command is usually a
list of commands between ( and 1, but may be any command listed under Compound Commands
above. compound—command is executed whenever name is specified as the name of a simple
command. Any redirection (see REDIRECTION below) specified when a function is defined are
performed when the function is executed. The exit status of a function definition is zero unless a
syntax error occurs or a readonly function with the same name already exists. When executed, the
exit status of a function is the exit status of the last command executed in the body. (See FUNC-
TIONS below.)
COMMENTS
In a non-interactive shell, or an interactive shell in which the interactive_conunents option to the shopt
builtin is enabled (see SHELL BUILTIN COMMANDS below), a word beginning with # causes that word
and all remaining characters on that line to be ignored. An interactive shell without the
ments option enabled does not allow comments. The interactive_comments option is on by default in
interactive shells.
QUOTING
Quoting is used to remove the special meaning of certain characters or words to the shell. Quoting can be
used to disable special treatment for special characters, to prevent reserved words from being recognized as
such, and to prevent parameter expansion.
Each of the metachamcters listed above under DEFINITIONS has special meaning to the shell and must be
quoted if it is to represent itself.
When the command history expansion facilities are being used (see HISTORY EXPANSION below), the
history expansion character, usually i, must be quoted to prevent history expansion.
GNU Bash-3.l-betal 2005 Aug 27 6
EFTA00315790
BASH(1) BASH(I)
There are three quoting mechanisms: the escape character, single quotes, and double quotes.
A non•quoted backslash (\) is the escape character. It preserves the literal value of the next character that
follows, with the exception of <newline>. If a 1<newline> pair appears, and the backslash is not itself
quoted, the Wnewline> is treated as a line continuation (that is, it is removed from the input stream and
effectively ignored).
Enclosing characters in single quotes preserves the literal value of each character within the quotes. A sin-
gle quote may not occur between single quotes, even when preceded by a backslash.
Enclosing characters in double quotes preserves the literal value of all characters within the quotes, with the
exception of $, `, 1, and, when history expansion is enabled, I. The characters $ and retain their special
meaning within double quotes. The backslash retains its special meaning only when followed by one of the
following characters: $, `, ", \, or <newline>. A double quote may be quoted within double quotes by pre-
ceding it with a backslash. If enabled, history expansion will be performed unless an ! appearing in double
quotes is escaped using a backslash. The backslash preceding the ! is not removed.
The special parameters * and @ have special meaning when in double quotes (see PARAMETERS below).
Words of the form $'string' are treated specially. The word expands to string, with backslash-escaped char-
acters replaced as specified by the ANSI C standard. Backslash escape sequences, if present, are decoded
as follows:
\a alert (bell)
▪ backspace
\e an escape character
f form feed
\n new line
\r carriage return
• horizontal tab
vertical tab
backslash
• single quote
\nnn the eight•bit character whose value is the octal value nnn (one to three digits)
\xHH the eight•bit character whose value is the hexadecimal value HH (one or two hex digits)
a control-.x character
The expanded result is single•quoted, as if the dollar sign had not been present.
A double-quoted string preceded by a dollar sign ($) will cause the string to be translated according to the
current locale. If the current locale is C or POSIX, the dollar sign is ignored. If the string is translated and
replaced, the replacement is double•quoted.
PARAMETERS
A parameter is an entity that stores values. It can be a name, a number, or one of the special characters
listed below under Special Parameters. A variable is a parameter denoted by a name. A variable has a
value and zero or more attributes. Attributes are assigned using the declare builtin command (see declare
below in SHELL BUILTIN COMMANDS).
A parameter is set if it has been assigned a value. The null string is a valid value. Once a variable is set, it
may be unset only by using the onset builtin command (see SHELL BUILTIN COMMANDS below).
A variable may be assigned to by a statement of the form
name=lvaluel
If value is not given, the variable is assigned the null string. All values undergo tilde expansion, parameter
and variable expansion, command substitution, arithmetic expansion, and quote removal (see EXPANSION
below). If the variable has its integer attribute set, then value is evaluated as an arithmetic expression even
if the $((...)) expansion is not used (see Arithmetic Expansion below). Word splitting is not performed,
with the exception of "$@" as explained below under Special Parameters. Pathname expansion is not
performed. Assignment statements may also appear as arguments to the alias. declare. typeset. export,
readonly, and local builtin commands.
GNU Bash-3. l-betal 2005 Aug 27 7
EFTA00315791
BASH(1) BASH(1)
In the context where an assignment statement is assigning a value to a shell variable or array index, the +=
operator can be used to append to or add to the variable's previous value. When += is applied to a variable
for which the integer attribute has been set, value is evaluated as an arithmetic expression and added to the
variable's current value, which is also evaluated. When += is applied to an array variable using compound
assignment (see Arrays below), the variable's value is not unset (as it is when using =), and new values are
appended to the array beginning at one greater than the array's maximum index. When applied to a string-
valued variable, value is expanded and appended to the variable's value.
Positional Parameters
A positional parameter is a parameter denoted by one or more digits, other than the single digit 0. Posi-
tional parameters are assigned from the shell's arguments when it is invoked, and may be reassigned using
the set builtin command. Positional parameters may not be assigned to with assignment statements. The
positional parameters are temporarily replaced when a shell function is executed (see FUNCTIONS below).
When a positional parameter consisting of more than a single digit is expanded, it must be enclosed in
braces (see EXPANSION below).
Special Parameters
The shell treats several parameters specially. These parameters may only be referenced: assignment to
them is not allowed.
• Expands to the positional parameters, starting from one. When the expansion occurs within dou-
ble quotes, it expands to a single word with the value of each parameter separated by the first char-
acter of the IFS special variable. That is, "$*" is equivalent to "$1c$2c...", where c is the first char-
acter of the value of the IFS variable. If IFS is unset, the parameters are separated by spaces. If
IFS is null, the parameters are joined without intervening separators.
Expands to the positional parameters, starting from one. When the expansion occurs within dou-
ble quotes, each parameter expands to a separate word. That is, "$@" is equivalent to "$1" "$2" ...
If the double-quoted expansion occurs within a word, the expansion of the first parameter is joined
with the beginning part of the original word, and the expansion of the last parameter is joined with
the last part of the original word. When there are no positional parameters, "$@" and $@ expand
to nothing (i.e., they are removed).
• Expands to the number of positional parameters in decimal.
Expands to the status of the most recently executed foreground pipeline.
Expands to the current option flags as specified upon invocation, by the set builtin command, or
those set by the shell itself (such as the —i option).
Expands to the process ID of the shell. In a 0 subshell, it expands to the process ID of the current
shell, not the subshell.
Expands to the process ID of the most recently executed background (asynchronous) command.
O Expands to the namc of the shell or shell script. This is set at shell initialization. If bash is
invoked with a file of commands, $0 is set to the name of that file. If bash is started with the —c
option, then $0 is set to the first argument after the string to be executed, if one is present. Other-
wise, it is set to the file name used to invoke bash, as given by argument zero.
At shell startup, set to the absolute pathname used to invoke the shell or shell script being executed
as passed in the environment or argument list. Subsequently, expands to the last argument to the
previous command, after expansion. Also set to the full pathname used to invoke each command
executed and placed in the environment exported to that command. When checking mail, this
parameter holds the name of the mail file currently being checked.
Shell Variables
The following variables are set by the shell:
BASH Expands to the full file name used to invoke this instance of bash.
BASH_ARGC
An array variable whose values are the number of parameters in each frame of the current bash
execution call stack. The number of parameters to the current subroutine (shell function or script
executed with . or source) is at the top of the stack. When a subroutine is executed, the number of
parameters passed is pushed onto BASH_ARGC. The shell sets BASH_ARGC only when in
GNU Bash-3.I -beta! 2005 Aug 27 8
EFTA00315792
BASH(1) BASH(I)
extended debugging mode (see the description of the extdebug option to the shopt builtin below)
BASH_ARGV
An array variable containing all of the parameters in the current bash execution call stack. The
final parameter of the last subroutine call is at the top of the stack; the first parameter of the initial
call is at the bottom. When a subroutine is executed, the parameters supplied are pushed onto
BASH_ARGV. The shell sets BASH_ARGV only when in extended debugging mode (see the
description of the extdebug option to the shopt builtin below)
BASH_COMMAND
The command currently being executed or about to be executed, unless the shell is executing a
command as the result of a trap, in which case it is the command executing at the time of the trap.
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 corresponding to each mem-
ber of FUNCNAME. $(BASH_LINENO[Si]} is the line number in the source file where
SIFUNCNAMEIVfn was called. The corresponding source file name is
$(BASH_SOURCE[Si]}. Use LINENO to obtain the current line number.
BASH_REMATCH
An array variable whose members are assigned by the = binary operator to the [I conditional com-
mand. 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 subexpres-
sion. This variable is read-only.
BASH_SOURCE
An array variable whose members are the source filenames corresponding to the elements in the
FUNCNAME array variable.
BASH_SUBSHELL
Incremented by one each time a subshell or subshell environment is spawned. The initial value is
0.
BASH_VERSINFO
A readonly array variable 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[ I 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., beta!).
BASH_VERSINFO[5] The value of MACHTYPE.
BASH_VERSION
Expands to a string describing the version of this instance of bash.
COMP_CWORD
An index into SICOMP_WORDS) of the word containing the current cursor position. This vari-
able is available only in shell functions invoked by the programmable completion facilities (see
Programmable Completion below).
COMP_LINE
The current command line. This variable is available only in shell functions and external com-
mands invoked by the programmable completion facilities (see Programmable Completion
below).
COMP_POINT
The index of the current cursor position relative to the beginning of the current command. If the
current cursor position is at the end of the current command, the value of this variable is equal to
$(#COMP_LINE}. This variable is available only in shell functions and external commands
invoked by the programmable completion facilities (see Programmable Completion below).
GNU Bash-3. I -betal 2005 Aug 27 9
EFTA00315793
BASH(I) BASH(I)
CONIP_WORDBREAKS
The set of characters that the Readline library treats as word separators when performing word
completion. If COMP_WORDBREAKS is unset, it loses its special properties, even if it is subse-
quently reset.
CONIP_WORDS
An array variable (see Arrays below) consisting of the individual words in the current command
line. This variable is available only in shell functions invoked by the programmable completion
facilities (see Programmable Completion below).
DIRSTACK
An array variable (see Arrays below) containing the current contents of the directory stack.
Directories appear in the stack in the order they are displayed by the dirs builtin. Assigning to
members of this array variable may be used to modify directories already in the stack, but the
pushd and popd builtins must be used to add and remove directories. Assignment to this variable
will not change the current directory. If DIRSTACK is unset, it loses its special properties, even if
it is subsequently reset.
EUID Expands to the effective user ID of the current user, initialized at shell startup. This variable is
readonly.
FUNCNAME
An array variable containing the names of all shell functions currently in the execution call stack.
The element with index 0 is the name of any currently-executing shell function. The bottom-most
element is "main". This variable exists only when a shell function is executing. Assignments to
FUNCNAME have no effect and return an error status. If FUNCNAME is onset, it loses its special
properties, even if it is subsequently reset.
GROUPS
An array variable containing the list of groups of which the current user is a member. Assign-
ments to GROUPS have no effect and return an error status. If GROUPS is onset, it loses its spe-
cial properties, even if it is subsequently reset.
HISTCMD
The history number, or index in the history list, of the current command. If HISTCMD is unset, it
loses its special properties, even if it is subsequently reset.
HOSTNAME
Automatically set to the name of the current host.
HOSTTYPE
Automatically set to a string that uniquely describes the type of machine on which bash is execut-
ing. The default is system-dependent.
LINENO
Each time this parameter is referenced, the shell substitutes a decimal number representing the
current sequential line number (starting with I) within a script or function. When not in a script or
function, the value substituted is not guaranteed to be meaningful. If LINENO is unset, it loses its
special properties, even if it is subsequently reset.
MACHTYPE
Automatically set to a string that fully describes the system type on which bash is executing, in
the standard GNU cpu-company-system format. The default is system-dependent.
OLDPWD
The previous working directory as set by the cd command.
OPTARG
The value of the last option argument processed by the getopts builtin command (see SHELL
BUILTIN COMMANDS below).
GNU Bash-3.l-betal 2005 Aug 27 10
EFTA00315794
BASH(1) BASH(I)
OPTIND
The index of the next argument to be processed by the getopis builtin command (see SHELL
BUILTIN COMMANDS below).
OSTYPE
Automatically set to a string that describes the operating system on which bash is executing. The
default is system-dependent.
PIPESTATUS
An array variable (see Arrays below) containing a list of exit status values from the processes in
the most-recently-executed foreground pipeline (which may contain only a single command).
PPID The process ID of the shell's parent. This variable is readonly.
PWD The current working directory as set by the cd command.
RANDOM
Each time this parameter is referenced, a random integer between 0 and 32767 is generated. The
sequence of random numbers may be initialized by assigning a value to RANDOM. If RANDOM is
unset, it loses its special properties, even if it is subsequently reset.
REPLY
Set to the line of input read by the read builtin command when no arguments are supplied.
SECONDS
Each time this parameter is referenced, the number of seconds since shell invocation is returned.
If a value is assigned to SECONDS. the value returned upon subsequent references is the number
of seconds since the assignment plus the value assigned. If SECONDS is unset, it loses its special
properties, even if it is subsequently reset.
SHELLOPTS
A colon-separated list of enabled shell options. Each word in the list is a valid argument for the
—o option to the set builtin command (see SHELL BUILTIN COMMANDS below). The options
appearing in SHELLOPTS are those reported as on by set —o. If this variable is in the environment
when bash starts up, each shell option in the list will be enabled before reading any startup files.
This variable is read-only.
SHLVL
Incremented by one each time an instance of bash is started.
UID Expands to the user ID of the current user, initialized at shell startup. This variable is readonly.
The following variables are used by the shell. In some cases, bash assigns a default value to a variable;
these cases are noted below.
BASH_ENV
If this parameter is set when bash is executing a shell script, its value is interpreted as a filename
containing commands to initialize the shell, as in 7.bashrc. The value of BASH_ENV is subjected
to parameter expansion, command substitution, and arithmetic expansion before being interpreted
as a file name. PATH is not used to search for the resultant file name.
CDPATH
The search path for the cd command. This is a colon-separated list of directories in which the
shell looks for destination directories specified by the cd command. A sample value is
". : - :/usr".
COLUMNS
Used by the select builtin command to determine the terminal width when printing selection lists.
Automatically set upon receipt of a SIGWINCH.
COMPREPLY
An array variable from which bash reads the possible completions generated by a shell function
invoked by the programmable completion facility (see Programmable Completion below).
GNU Bash-3.1-betal ?COS Aug 27 11
EFTA00315795
BASH(1 ) BASH(I)
EMACS
If bash finds this variable in the environment when the shell starts with value t, it assumes that the
shell is running in an emacs shell buffer and disables line editing.
FCEDIT
The default editor for the fc builtin command.
FIGNORE
A colon-separated list of suffixes to ignore when performing filename completion (see READLINE
below). A filename whose suffix matches one of the entries in FIGNORE is excluded from the list
of matched filenames. A sample value is " . o : ".
GLOBIGNORE
A colon-separated list of patterns defining the set of filenames to be ignored by pathname expan-
sion. If a filename matched by a pathname expansion p
ℹ️ Document Details
SHA-256
9da83b17a473b6a0cb445bdbc34a8f68a37a83887c4bd24d6e230c0da96f7da9
Bates Number
EFTA00315784
Dataset
DataSet-9
Document Type
document
Pages
65
Comments 0