summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2010-05-24 15:12:12 +0000
committerjilles <jilles@FreeBSD.org>2010-05-24 15:12:12 +0000
commitce59c74efda35e47b39621f57c0fe63e02c7af5b (patch)
treeda7df8465401e4a9d0bfac7ab141e469ba3d61b0 /bin
parent32b13ee95703577767e8794ce5e896ad8fdbdee7 (diff)
downloadFreeBSD-src-ce59c74efda35e47b39621f57c0fe63e02c7af5b.zip
FreeBSD-src-ce59c74efda35e47b39621f57c0fe63e02c7af5b.tar.gz
sh(1): Rework documentation of shell variables.
* Move the "environment variables" that do not need exporting to be effective or that are set by the shell without exporting to a new section "Special Variables". * Add special variables LINENO and PPID. * Add environment variables LANG, LC_* and PWD; also describe ENV under environment variables.
Diffstat (limited to 'bin')
-rw-r--r--bin/sh/sh.1205
1 files changed, 118 insertions, 87 deletions
diff --git a/bin/sh/sh.1 b/bin/sh/sh.1
index ba65e8c..aed995f 100644
--- a/bin/sh/sh.1
+++ b/bin/sh/sh.1
@@ -32,7 +32,7 @@
.\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95
.\" $FreeBSD$
.\"
-.Dd May 9, 2010
+.Dd May 24, 2010
.Dt SH 1
.Os
.Sh NAME
@@ -665,11 +665,11 @@ Command names containing a slash are simply executed without
performing any searches.
.It
The shell searches each entry in the
-.Ev PATH
-environment variable
+.Va PATH
+variable
in turn for the command.
The value of the
-.Ev PATH
+.Va PATH
variable should be a series of
entries separated by colons.
Each entry consists of a
@@ -1109,6 +1109,84 @@ pipeline.
.It Li $0
(zero) Expands to the name of the shell or shell script.
.El
+.Ss Special Variables
+The following variables are set by the shell or
+have special meaning to it:
+.Bl -tag -width ".Va HISTSIZE"
+.It Va CDPATH
+The search path used with the
+.Ic cd
+built-in.
+.It Va EDITOR
+The fallback editor used with the
+.Ic fc
+built-in.
+If not set, the default editor is
+.Xr ed 1 .
+.It Va FCEDIT
+The default editor used with the
+.Ic fc
+built-in.
+.It Va HISTSIZE
+The number of previous commands that are accessible.
+.It Va HOME
+The user's home directory,
+used in tilde expansion and as a default directory for the
+.Ic cd
+built-in.
+.It Va IFS
+Input Field Separators.
+This is normally set to
+.Aq space ,
+.Aq tab ,
+and
+.Aq newline .
+See the
+.Sx White Space Splitting
+section for more details.
+.It Va LINENO
+The current line number in the script or function.
+.It Va MAIL
+The name of a mail file, that will be checked for the arrival of new
+mail.
+Overridden by
+.Va MAILPATH .
+.It Va MAILPATH
+A colon
+.Pq Ql \&:
+separated list of file names, for the shell to check for incoming
+mail.
+This variable overrides the
+.Va MAIL
+setting.
+There is a maximum of 10 mailboxes that can be monitored at once.
+.It Va PATH
+The default search path for executables.
+See the
+.Sx Path Search
+section for details.
+.It Va PPID
+The parent process ID of the invoked shell.
+This is set at startup
+unless this variable is in the environment.
+A later change of parent process ID is not reflected.
+A subshell retains the same value of
+.Va PPID .
+.It Va PS1
+The primary prompt string, which defaults to
+.Dq Li "$ " ,
+unless you are the superuser, in which case it defaults to
+.Dq Li "# " .
+.It Va PS2
+The secondary prompt string, which defaults to
+.Dq Li "> " .
+.It Va PS4
+The prefix for the trace output (if
+.Fl x
+is active).
+The default is
+.Dq Li "+ " .
+.El
.Ss Word Expansions
This clause describes the various expansions that are
performed on words.
@@ -1162,7 +1240,7 @@ If the
username is missing (as in
.Pa ~/foobar ) ,
the tilde is replaced with the value of the
-.Ev HOME
+.Va HOME
variable (the current user's home directory).
.Ss Parameter Expansion
The format for parameter expansion is as follows:
@@ -1487,10 +1565,10 @@ contains any
.Ql /
characters, it is used as is.
Otherwise, the shell searches the
-.Ev PATH
+.Va PATH
for the file.
If it is not found in the
-.Ev PATH ,
+.Va PATH ,
it is sought in the current working directory.
.It Ic \&[
A built-in equivalent of
@@ -1534,7 +1612,7 @@ This command is documented in
Switch to the specified
.Ar directory ,
or to the directory specified in the
-.Ev HOME
+.Va HOME
environment variable if no
.Ar directory
is specified.
@@ -1545,17 +1623,17 @@ does not begin with
or
.Pa .. ,
then the directories listed in the
-.Ev CDPATH
+.Va CDPATH
variable will be
searched for the specified
.Ar directory .
If
-.Ev CDPATH
+.Va CDPATH
is unset, the current directory is searched.
The format of
-.Ev CDPATH
+.Va CDPATH
is the same as that of
-.Ev PATH .
+.Va PATH .
In an interactive shell,
the
.Ic cd
@@ -1563,7 +1641,7 @@ command will print out the name of the directory
that it actually switched to
if this is different from the name that the user gave.
These may be different either because the
-.Ev CDPATH
+.Va CDPATH
mechanism was used or because a symbolic link was crossed.
.Pp
If the
@@ -1597,7 +1675,7 @@ If the
.Fl p
option is specified, the command search is performed using a
default value of
-.Ev PATH
+.Va PATH
that is guaranteed to find all of the standard utilities.
.Pp
If the
@@ -1756,20 +1834,20 @@ The
.Ar editor
string is a command name,
subject to search via the
-.Ev PATH
+.Va PATH
variable.
The value in the
-.Ev FCEDIT
+.Va FCEDIT
variable is used as a default when
.Fl e
is not specified.
If
-.Ev FCEDIT
+.Va FCEDIT
is null or unset, the value of the
-.Ev EDITOR
+.Va EDITOR
variable is used.
If
-.Ev EDITOR
+.Va EDITOR
is null or unset,
.Xr ed 1
is used as the editor.
@@ -1803,7 +1881,7 @@ Re-execute the command without invoking an editor.
Select the commands to list or edit.
The number of previous commands that can be accessed
are determined by the value of the
-.Ev HISTSIZE
+.Va HISTSIZE
variable.
The value of
.Ar first
@@ -1834,12 +1912,12 @@ the string form of the first operand cannot contain an embedded equal sign.
.El
.El
.Pp
-The following environment variables affect the execution of
+The following variables affect the execution of
.Ic fc :
-.Bl -tag -width ".Ev HISTSIZE"
-.It Ev FCEDIT
+.Bl -tag -width ".Va HISTSIZE"
+.It Va FCEDIT
Name of the editor to use for history editing.
-.It Ev HISTSIZE
+.It Va HISTSIZE
The number of previous commands that are accessible.
.El
.It Ic fg Op Ar job
@@ -2305,74 +2383,27 @@ command line editing features.
.Sh ENVIRONMENT
The following environment variables affect the execution of
.Nm :
-.Bl -tag -width ".Ev HISTSIZE"
-.It Ev CDPATH
-The search path used with the
-.Ic cd
-built-in.
-.It Ev EDITOR
-The fallback editor used with the
-.Ic fc
-built-in.
-If not set, the default editor is
-.Xr ed 1 .
-.It Ev FCEDIT
-The default editor used with the
-.Ic fc
-built-in.
-.It Ev HISTSIZE
-The number of previous commands that are accessible.
-.It Ev HOME
-The starting directory of
-.Nm .
-.It Ev IFS
-Input Field Separators.
-This is normally set to
-.Aq space ,
-.Aq tab ,
-and
-.Aq newline .
-See the
-.Sx White Space Splitting
-section for more details.
-.It Ev MAIL
-The name of a mail file, that will be checked for the arrival of new
-mail.
-Overridden by
-.Ev MAILPATH .
-.It Ev MAILPATH
-A colon
-.Pq Ql \&:
-separated list of file names, for the shell to check for incoming
-mail.
-This environment setting overrides the
-.Ev MAIL
-setting.
-There is a maximum of 10 mailboxes that can be monitored at once.
-.It Ev PATH
-The default search path for executables.
-See the
-.Sx Path Search
-section for details.
-.It Ev PS1
-The primary prompt string, which defaults to
-.Dq Li "$ " ,
-unless you are the superuser, in which case it defaults to
-.Dq Li "# " .
-.It Ev PS2
-The secondary prompt string, which defaults to
-.Dq Li "> " .
-.It Ev PS4
-The prefix for the trace output (if
-.Fl x
-is active).
-The default is
-.Dq Li "+ " .
+.Bl -tag -width ".Ev LANGXXXXXX"
+.It Ev ENV
+Initialization file for interactive shells.
+.It Ev LANG , Ev LC_*
+Locale settings.
+These are inherited by children of the shell,
+and is used in a limited manner by the shell itself.
+.It Ev PWD
+An absolute pathname for the current directory,
+possibly containing symbolic links.
+This is used and updated by the shell.
.It Ev TERM
The default terminal setting for the shell.
This is inherited by children of the shell, and is used in the history
editing modes.
.El
+.Pp
+Additionally, all environment variables are turned into shell variables
+at startup,
+which may affect the shell as described under
+.Sx Special Variables .
.Sh EXIT STATUS
Errors that are detected by the shell, such as a syntax error, will
cause the shell to exit with a non-zero exit status.
OpenPOWER on IntegriCloud