Built-in Shell Variables

Table A-5 shows a complete list of environment variables available in bash 3.0. The letters in the Type column of the table have the following meanings: A = Array, L = colon-separated list, R = read-only, U = unsetting it causes it to lose its special meaning.

Note that the variables beginning BASH_ and beginning COMP, as well as the variables DIRSTACK, FUNCNAME, GLOBIGNORE, GROUPS, HISTIGNORE, HOSTNAME, HISTTIMEFORMAT, LANG, LC_ALL, LC_COLLATE, LC_MESSAGE, MACHTYPE, PIPESTATUS, SHELLOPTS, and TIMEFORMAT are not available in versions prior to 2.0. BASH_ENV replaces ENV found in earlier versions.

Table A-5. Built-in shell environment variables

Variable

Type

Description

*

R

A single string containing the positional parameters given to the current script or function, separated by the first character of $IFS (e.g., arg1 arg2 arg3).

@

R

Each of the positional parameters given to the current script or function, given as a list of double-quoted strings (e.g., "arg1" "arg2" "arg3").

#

R

The number of arguments given to the current script or function.

-

R

Options given to the shell on invocation.

?

R

Exit status of the previous command.

_

R

Last argument to the previous command.

$

R

Process ID of the shell process.

!

R

Process ID of the last background command.

0

R

Name of the shell or shell script.

BASH

 

The full pathname used to invoke this instance of bash.

BASH_ARGC

A

An array of values, which are the number of parameters in each frame of the current bash execution call stack. The number of ...

Get bash Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.