Info Node: (bash.info)Bash Variables

CFHT HOME bash.info: Bash Variables


up: Shell Variables prev: Bourne Shell Variables Back to Software Index

5.2 Bash Variables
==================

These variables are set or used by Bash, but other shells do not
normally treat them specially.

   A few variables used by Bash are described in different chapters:
variables for controlling the job control facilities (Note: Job Control
Variables).

'BASH'
     The full pathname used to execute the current 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 extended
     debugging mode (see Note: Bash Builtins for a description of the
     'extdebug' option to the 'shopt' builtin).

'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 Note:
     Bash Builtins for a description of the 'extdebug' option to the
     'shopt' builtin).

'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_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.  Note: 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 corresponding to each member of FUNCNAME.
     '${BASH_LINENO[$i]}' is the line number in the source file where
     '${FUNCNAME[$i]}' was called.  The corresponding source file name
     is '${BASH_SOURCE[$i]}'.  Use 'LINENO' to obtain the current line
     number.

'BASH_REMATCH'
     An array variable whose members are assigned by the '=~' binary
     operator to the '[[' conditional command (Note: 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.  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 (Note: 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.

'COLUMNS'
     Used by the 'select' builtin command to determine the terminal
     width when printing selection lists.  Automatically set upon
     receipt of a 'SIGWINCH'.

'COMP_CWORD'
     An index into '${COMP_WORDS}' of the word containing the current
     cursor position.  This variable is available only in shell
     functions invoked by the programmable completion facilities (Note:
     Programmable Completion).

'COMP_LINE'
     The current command line.  This variable is available only in shell
     functions and external commands invoked by the programmable
     completion facilities (Note: Programmable Completion).

'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 (Note: Programmable Completion).

'COMP_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
     subsequently reset.

'COMP_WORDS'
     An array variable consisting of the individual words in the current
     command line.  The words are split on shell metacharacters as the
     shell parser would separate them.  This variable is available only
     in shell functions invoked by the programmable completion
     facilities (Note: Programmable Completion).

'COMPREPLY'
     An array variable from which Bash reads the possible completions
     generated by a shell function invoked by the programmable
     completion facility (Note: Programmable Completion).

'DIRSTACK'
     An array variable 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.

'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.

'EUID'
     The numeric effective user id of the current user.  This variable
     is readonly.

'FCEDIT'
     The editor used as a default by the '-e' option to the 'fc' builtin
     command.

'FIGNORE'
     A colon-separated list of suffixes to ignore when performing
     filename completion.  A file name whose suffix matches one of the
     entries in 'FIGNORE' is excluded from the list of matched file
     names.  A sample value is '.o:~'

'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 unset, it
     loses its special properties, even if it is subsequently reset.

'GLOBIGNORE'
     A colon-separated list of patterns defining the set of filenames to
     be ignored by filename expansion.  If a filename matched by a
     filename expansion pattern also matches one of the patterns in
     'GLOBIGNORE', it is removed from the list of matches.

'GROUPS'
     An array variable containing the list of groups of which the
     current user is a member.  Assignments to 'GROUPS' have no effect
     and return an error status.  If 'GROUPS' is unset, it loses its
     special properties, even if it is subsequently reset.

'histchars'
     Up to three characters which control history expansion, quick
     substitution, and tokenization (Note: History Interaction).  The
     first character is the HISTORY EXPANSION character, that is, the
     character which signifies the start of a history expansion,
     normally '!'.  The second character is the character which
     signifies 'quick substitution' when seen as the first character on
     a line, normally '^'.  The optional third character is the
     character which indicates that the remainder of the line is a
     comment when found as the first character of a word, usually '#'.
     The history comment character causes history substitution to be
     skipped for the remaining words on the line.  It does not
     necessarily cause the shell parser to treat the rest of the line as
     a comment.

'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.

'HISTCONTROL'
     A colon-separated list of values controlling how commands are saved
     on the history list.  If the list of values includes 'ignorespace',
     lines which begin with a space character are not saved in the
     history list.  A value of 'ignoredups' causes lines which match the
     previous history entry to not be saved.  A value of 'ignoreboth' is
     shorthand for 'ignorespace' and 'ignoredups'.  A value of
     'erasedups' causes all previous lines matching the current line to
     be removed from the history list before that line is saved.  Any
     value not in the above list is ignored.  If 'HISTCONTROL' is unset,
     or does not include a valid value, all lines read by the shell
     parser are saved on the history list, subject to the value of
     'HISTIGNORE'.  The second and subsequent lines of a multi-line
     compound command are not tested, and are added to the history
     regardless of the value of 'HISTCONTROL'.

'HISTFILE'
     The name of the file to which the command history is saved.  The
     default value is '~/.bash_history'.

'HISTFILESIZE'
     The maximum number of lines contained in the history file.  When
     this variable is assigned a value, the history file is truncated,
     if necessary, by removing the oldest entries, to contain no more
     than that number of lines.  The history file is also truncated to
     this size after writing it when an interactive shell exits.  The
     default value is 500.

'HISTIGNORE'
     A colon-separated list of patterns used to decide which command
     lines should be saved on the history list.  Each pattern is
     anchored at the beginning of the line and must match the complete
     line (no implicit '*' is appended).  Each pattern is tested against
     the line after the checks specified by 'HISTCONTROL' are applied.
     In addition to the normal shell pattern matching characters, '&'
     matches the previous history line.  '&' may be escaped using a
     backslash; the backslash is removed before attempting a match.  The
     second and subsequent lines of a multi-line compound command are
     not tested, and are added to the history regardless of the value of
     'HISTIGNORE'.

     'HISTIGNORE' subsumes the function of 'HISTCONTROL'.  A pattern of
     '&' is identical to 'ignoredups', and a pattern of '[ ]*' is
     identical to 'ignorespace'.  Combining these two patterns,
     separating them with a colon, provides the functionality of
     'ignoreboth'.

'HISTSIZE'
     The maximum number of commands to remember on the history list.
     The default value is 500.

'HISTTIMEFORMAT'
     If this variable is set and not null, its value is used as a format
     string for STRFTIME to print the time stamp associated with each
     history entry displayed by the 'history' builtin.  If this variable
     is set, time stamps are written to the history file so they may be
     preserved across shell sessions.

'HOSTFILE'
     Contains the name of a file in the same format as '/etc/hosts' that
     should be read when the shell needs to complete a hostname.  The
     list of possible hostname completions may be changed while the
     shell is running; the next time hostname completion is attempted
     after the value is changed, Bash adds the contents of the new file
     to the existing list.  If 'HOSTFILE' is set, but has no value, Bash
     attempts to read '/etc/hosts' to obtain the list of possible
     hostname completions.  When 'HOSTFILE' is unset, the hostname list
     is cleared.

'HOSTNAME'
     The name of the current host.

'HOSTTYPE'
     A string describing the machine Bash is running on.

'IGNOREEOF'
     Controls the action of the shell on receipt of an 'EOF' character
     as the sole input.  If set, the value denotes the number of
     consecutive 'EOF' characters that can be read as the first
     character on an input line before the shell will exit.  If the
     variable exists but does not have a numeric value (or has no value)
     then the default is 10.  If the variable does not exist, then 'EOF'
     signifies the end of input to the shell.  This is only in effect
     for interactive shells.

'INPUTRC'
     The name of the Readline initialization file, overriding the
     default of '~/.inputrc'.

'LANG'
     Used to determine the locale category for any category not
     specifically selected with a variable starting with 'LC_'.

'LC_ALL'
     This variable overrides the value of 'LANG' and any other 'LC_'
     variable specifying a locale category.

'LC_COLLATE'
     This variable determines the collation order used when sorting the
     results of filename expansion, and determines the behavior of range
     expressions, equivalence classes, and collating sequences within
     filename expansion and pattern matching (Note: Filename
     Expansion).

'LC_CTYPE'
     This variable determines the interpretation of characters and the
     behavior of character classes within filename expansion and pattern
     matching (Note: Filename Expansion).

'LC_MESSAGES'
     This variable determines the locale used to translate double-quoted
     strings preceded by a '$' (Note: Locale Translation).

'LC_NUMERIC'
     This variable determines the locale category used for number
     formatting.

'LINENO'
     The line number in the script or shell function currently
     executing.

'LINES'
     Used by the 'select' builtin command to determine the column length
     for printing selection lists.  Automatically set upon receipt of a
     'SIGWINCH'.

'MACHTYPE'
     A string that fully describes the system type on which Bash is
     executing, in the standard GNU CPU-COMPANY-SYSTEM format.

'MAILCHECK'
     How often (in seconds) that the shell should check for mail in the
     files specified in the 'MAILPATH' or 'MAIL' variables.  The default
     is 60 seconds.  When it is time to check for mail, the shell does
     so before displaying the primary prompt.  If this variable is
     unset, or set to a value that is not a number greater than or equal
     to zero, the shell disables mail checking.

'OLDPWD'
     The previous working directory as set by the 'cd' builtin.

'OPTERR'
     If set to the value 1, Bash displays error messages generated by
     the 'getopts' builtin command.

'OSTYPE'
     A string describing the operating system Bash is running on.

'PIPESTATUS'
     An array variable (Note: Arrays) containing a list of exit status
     values from the processes in the most-recently-executed foreground
     pipeline (which may contain only a single command).

'POSIXLY_CORRECT'
     If this variable is in the environment when 'bash' starts, the
     shell enters POSIX mode (Note: Bash POSIX Mode) before reading
     the startup files, as if the '--posix' invocation option had been
     supplied.  If it is set while the shell is running, 'bash' enables
     POSIX mode, as if the command
          set -o posix
     had been executed.

'PPID'
     The process ID of the shell's parent process.  This variable is
     readonly.

'PROMPT_COMMAND'
     If set, the value is interpreted as a command to execute before the
     printing of each primary prompt ('$PS1').

'PS3'
     The value of this variable is used as the prompt for the 'select'
     command.  If this variable is not set, the 'select' command prompts
     with '#? '

'PS4'
     The value is the prompt printed before the command line is echoed
     when the '-x' option is set (Note: The Set Builtin).  The first
     character of 'PS4' is replicated multiple times, as necessary, to
     indicate multiple levels of indirection.  The default is '+ '.

'PWD'
     The current working directory as set by the 'cd' builtin.

'RANDOM'
     Each time this parameter is referenced, a random integer between 0
     and 32767 is generated.  Assigning a value to this variable seeds
     the random number generator.

'REPLY'
     The default variable for the 'read' builtin.

'SECONDS'
     This variable expands to the number of seconds since the shell was
     started.  Assignment to this variable resets the count to the value
     assigned, and the expanded value becomes the value assigned plus
     the number of seconds since the assignment.

'SHELL'
     The full pathname to the shell is kept in this environment
     variable.  If it is not set when the shell starts, Bash assigns to
     it the full pathname of the current user's login shell.

'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 (Note: The Set Builtin).  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 readonly.

'SHLVL'
     Incremented by one each time a new instance of Bash is started.
     This is intended to be a count of how deeply your Bash shells are
     nested.

'TIMEFORMAT'
     The value of this parameter is used as a format string specifying
     how the timing information for pipelines prefixed with the 'time'
     reserved word should be displayed.  The '%' character introduces an
     escape sequence that is expanded to a time value or other
     information.  The escape sequences and their meanings are as
     follows; the braces denote optional portions.

     '%%'
          A literal '%'.

     '%[P][l]R'
          The elapsed time in seconds.

     '%[P][l]U'
          The number of CPU seconds spent in user mode.

     '%[P][l]S'
          The number of CPU seconds spent in system mode.

     '%P'
          The CPU percentage, computed as (%U + %S) / %R.

     The optional P is a digit specifying the precision, the number of
     fractional digits after a decimal point.  A value of 0 causes no
     decimal point or fraction to be output.  At most three places after
     the decimal point may be specified; values of P greater than 3 are
     changed to 3.  If P is not specified, the value 3 is used.

     The optional 'l' specifies a longer format, including minutes, of
     the form MMmSS.FFs.  The value of P determines whether or not the
     fraction is included.

     If this variable is not set, Bash acts as if it had the value
          $'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'
     If the value is null, no timing information is displayed.  A
     trailing newline is added when the format string is displayed.

'TMOUT'
     If set to a value greater than zero, 'TMOUT' is treated as the
     default timeout for the 'read' builtin (Note: Bash Builtins).
     The 'select' command (Note: Conditional Constructs) terminates if
     input does not arrive after 'TMOUT' seconds when input is coming
     from a terminal.

     In an interative shell, the value is interpreted as the number of
     seconds to wait for input after issuing the primary prompt when the
     shell is interactive.  Bash terminates after that number of seconds
     if input does not arrive.

'TMPDIR'
     If set, Bash uses its value as the name of a directory in which
     Bash creates temporary files for the shell's use.

'UID'
     The numeric real user id of the current user.  This variable is
     readonly.


automatically generated by info2www version 1.2