Imported from ../bash-2.05b.tar.gz.

This commit is contained in:
Jari Aalto 2002-07-17 14:10:11 +00:00
commit 7117c2d221
362 changed files with 34387 additions and 15063 deletions

178
doc/FAQ
View file

@ -1,4 +1,4 @@
This is the Bash FAQ, version 3.17, for Bash version 2.05a.
This is the Bash FAQ, version 3.20, for Bash version 2.05b.
This document contains a set of frequently-asked questions concerning
Bash, the GNU Bourne-Again Shell. Bash is a freely-available command
@ -36,8 +36,8 @@ A10) What is the bash `posix mode'?
Section B: The latest version
B1) What's new in version 2.05a?
B2) Are there any user-visible incompatibilities between bash-2.05a and
B1) What's new in version 2.05b?
B2) Are there any user-visible incompatibilities between bash-2.05b and
bash-1.14.7?
Section C: Differences from other Unix shells
@ -74,6 +74,7 @@ E7) What about empty for loops in Makefiles?
E8) Why does the arithmetic evaluation code complain about `08'?
E9) Why does the pattern matching expression [A-Z]* match files beginning
with every letter except `z'?
E10) Why does `cd //' leave $PWD as `//'?
Section F: Things to watch out for on certain Unix versions
@ -86,6 +87,8 @@ F4) I'm running SVR4.2. Why is the line erased every time I type `@'?
F5) Why does bash report syntax errors when my C News scripts use a
redirection before a subshell command?
F6) Why can't I use vi-mode editing on Red Hat Linux 6.1?
F7) Why do bash-2.05a and bash-2.05b fail to compile `printf.def' on
HP/UX 11.x?
Section G: How can I get bash to do certain common things?
@ -134,23 +137,23 @@ of Case Western Reserve University.
A2) What's the latest version?
The latest version is 2.05a, first made available on Thursday, 15
November, 2001.
The latest version is 2.05b, first made available on Wednesday, 17
July, 2002.
A3) Where can I get it?
Bash is the GNU project's shell, and so is available from the
master GNU archive site, ftp.gnu.org, and its mirrors. The
latest version is also available for FTP from ftp.cwru.edu.
The following URLs tell how to get version 2.05a:
The following URLs tell how to get version 2.05b:
ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05a.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-2.05a.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-2.05b.tar.gz
Formatted versions of the documentation are available with the URLs:
ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-2.05a.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-doc-2.05a.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-2.05b.tar.gz
ftp://ftp.cwru.edu/pub/bash/bash-doc-2.05b.tar.gz
A4) On what machines will bash run?
@ -187,7 +190,7 @@ early GNU-Win32 (the original name) releases. Cygnus has also done a
port of bash-2.05 to the CYGWIN environment, and it is available as
part of their current release.
Bash-2.05a should require no local Cygnus changes to build and run under
Bash-2.05b should require no local Cygnus changes to build and run under
CYGWIN.
The Cygnus port works only on Intel machines. There is a port of bash
@ -363,6 +366,10 @@ available on the web at
http://www.opengroup.org/onlinepubs/007908799/
The Single Unix Specification, version 3, is available on the web at
http://www.opengroup.org/onlinepubs/007904975/
A10) What is the bash `posix mode'?
Although bash is an implementation of the POSIX.2 shell
@ -370,29 +377,61 @@ specification, there are areas where the bash default behavior
differs from that spec. The bash `posix mode' changes the bash
behavior in these areas so that it obeys the spec more closely.
Posix mode is entered by starting bash with the --posix option or
executing `set -o posix' after bash is running.
Posix mode is entered by starting bash with the --posix or
'-o posix' option or executing `set -o posix' after bash is running.
The specific aspects of bash which change when posix mode is
active are listed in the file CWRU/POSIX.NOTES in the bash
distribution. They are also listed in a section in the Bash
Reference Manual.
active are listed in the file POSIX in the bash distribution.
They are also listed in a section in the Bash Reference Manual
(from which that file is generated).
Section B: The latest version
B1) What's new in version 2.05a?
B1) What's new in version 2.05b?
The raison d'etre for bash-2.05a is to make an intermediate release
containing principally bug fixes (some very good work was done and
contributed after bash-2.05 was released) available before I start to
work on the major new features to be available in the next release
(bash-2.06 or bash-3.0 or whatever I tag it). As such, there are
only a few relatively minor new features.
The raison d'etre for bash-2.05b is to make a second intermediate
release containing the first of the new features to be available
in bash-3.0 and get feedback on those features before proceeding.
The major new feature is multibyte character support in both Bash
and Readline.
Bash-2.05a contains the following new features (see the manual page for
complete descriptions and the CHANGES and NEWS files in the bash-2.05a
Bash-2.05b contains the following new features (see the manual page for
complete descriptions and the CHANGES and NEWS files in the bash-2.05b
distribution):
o support for multibyte characters has been added to both bash and readline
o the DEBUG trap is now run *before* simple commands, ((...)) commands,
[[...]] conditional commands, and for ((...)) loops
o the shell now performs arithmetic in the largest integer size the machine
supports (intmax_t)
o there is a new \D{...} prompt expansion; passes the `...' to strftime(3)
and inserts the result into the expanded prompt
o there is a new `here-string' redirection operator: <<< word
o when displaying variables, function attributes and definitions are shown
separately, allowing them to be re-used as input (attempting to re-use
the old output would result in syntax errors).
o `read' has a new `-u fd' option to read from a specified file descriptor
o the bash debugger in examples/bashdb has been modified to work with the
new DEBUG trap semantics, the command set has been made more gdb-like,
and the changes to $LINENO make debugging functions work better
o the expansion of $LINENO inside a shell function is only relative to the
function start if the shell is interactive -- if the shell is running a
script, $LINENO expands to the line number in the script. This is as
POSIX-2001 requires
A short feature history dating from Bash-2.0:
Bash-2.05a introduced the following new features:
o The `printf' builtin has undergone major work
o There is a new read-only `shopt' option: login_shell, which is set by
@ -418,8 +457,6 @@ o Readline can be configured to place the user at the same point on the line
o Readline can be configured to skip `hidden' files (filenames with a leading
`.' on Unix) when performing completion
A short feature history dating from bash-2.0:
Bash-2.05 introduced the following new features:
o This version has once again reverted to using locales and strcoll(3) when
@ -570,13 +607,13 @@ grammar tighter and smaller (66 reduce-reduce conflicts gone)
lots of code now smaller and faster
test suite greatly expanded
B2) Are there any user-visible incompatibilities between bash-2.05a and
B2) Are there any user-visible incompatibilities between bash-2.05b and
bash-1.14.7?
There are a few incompatibilities between version 1.14.7 and version 2.05a.
They are detailed in the file COMPAT in the bash-2.05a distribution. That
file is not meant to be all-encompassing; send mail to bash-maintainers@gnu.org
if you find something that's not mentioned there.
There are a few incompatibilities between version 1.14.7 and version 2.05b.
They are detailed in the file COMPAT in the bash distribution. That file
is not meant to be all-encompassing; send mail to bash-maintainers@gnu.org
if if you find something that's not mentioned there.
Section C: Differences from other Unix shells
@ -589,6 +626,7 @@ completely.
Things bash has that sh does not:
long invocation options
[+-]O invocation option
-l invocation option
`!' reserved word to invert pipeline return value
`time' reserved word to time pipelines and shell builtins
the `function' reserved word
@ -601,7 +639,7 @@ Things bash has that sh does not:
the ${#param} parameter value length operator
the ${!param} indirect parameter expansion operator
the ${!param*} prefix expansion operator
the ${param:length[:offset]} parameter substring operator
the ${param:offset[:length]} parameter substring operator
the ${param/pat[/string]} parameter pattern substitution operator
expansions to perform substring removal (${p%[%]w}, ${p#[#]w})
expansion of positional parameters beyond $9 with ${num}
@ -616,18 +654,18 @@ Things bash has that sh does not:
DEBUG trap
ERR trap
variable arrays with new compound assignment syntax
redirections: <>, &>, >|
redirections: <>, &>, >|, <<<, [n]<&word-, [n]>&word-
prompt string special char translation and variable expansion
auto-export of variables in initial environment
command search finds functions before builtins
bash return builtin will exit a file sourced with `.'
builtins: cd -/-L/-P, exec -l/-c/-a, echo -e/-E, hash -p/-t.
builtins: cd -/-L/-P, exec -l/-c/-a, echo -e/-E, hash -d/-l/-p/-t.
export -n/-f/-p/name=value, pwd -L/-P,
read -e/-p/-a/-t/-n/-d/-s,
read -e/-p/-a/-t/-n/-d/-s/-u,
readonly -a/-f/name=value, trap -l, set +o,
set -b/-m/-o option/-h/-p/-B/-C/-H/-P,
unset -f/-v, ulimit -m/-p/-u,
type -a/-p/-t, suspend -f, kill -n,
type -a/-p/-t/-f/-P, suspend -f, kill -n,
test -o optname/s1 == s2/s1 < s2/s1 > s2/-nt/-ot/-ef/-O/-G/-S
bash reads ~/.bashrc for interactive shells, $ENV for non-interactive
bash restricted shell mode is more extensive
@ -690,15 +728,17 @@ C2) How does bash differ from the Korn shell, version ksh88?
Things bash has or uses that ksh88 does not:
long invocation options
[-+]O invocation option
-l invocation option
`!' reserved word
arithmetic for command: for ((expr1 ; expr2; expr3 )); do list; done
arithmetic in largest machine-supported size (intmax_t)
posix mode and posix conformance
command hashing
tilde expansion for assignment statements that look like $PATH
process substitution with named pipes if /dev/fd is not available
the ${!param} indirect parameter expansion operator
the ${!param*} prefix expansion operator
the ${param:length[:offset]} parameter substring operator
the ${param:offset[:length]} parameter substring operator
the ${param/pat[/string]} parameter pattern substitution operator
variables: BASH, BASH_VERSION, BASH_VERSINFO, UID, EUID, SHLVL,
TIMEFORMAT, HISTCMD, HOSTTYPE, OSTYPE, MACHTYPE,
@ -707,7 +747,7 @@ Things bash has or uses that ksh88 does not:
PIPESTATUS, HOSTNAME, OPTERR, SHELLOPTS, GLOBIGNORE,
GROUPS, FUNCNAME, histchars, auto_resume
prompt expansion with backslash escapes and command substitution
redirection: &> (stdout and stderr)
redirection: &> (stdout and stderr), <<<, [n]<&word-, [n]>&word-
more extensive and extensible editing and programmable completion
builtins: bind, builtin, command, declare, dirs, echo -e/-E, enable,
exec -l/-c/-a, fc -s, export -n/-f/-p, hash, help, history,
@ -727,6 +767,7 @@ Things bash has or uses that ksh88 does not:
`**' arithmetic operator to do exponentiation
redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr
arrays of unlimited size
TMOUT is default timeout for `read' and `select'
Things ksh88 has or uses that bash does not:
tracked aliases (alias -t)
@ -736,7 +777,7 @@ Things ksh88 has or uses that bash does not:
typeset +f to list all function names without definitions
text of command history kept in a file, not memory
builtins: alias -x, cd old new, fc -e -, newgrp, print,
read -p/-s/-u/var?prompt, set -A/-o gmacs/
read -p/-s/var?prompt, set -A/-o gmacs/
-o bgnice/-o markdirs/-o nolog/-o trackall/-o viraw/-s,
typeset -H/-L/-R/-Z/-A/-ft/-fu/-fx/-l/-u/-t, whence
using environment to pass attributes of exported variables
@ -754,7 +795,7 @@ Implementation differences:
C3) Which new features in ksh-93 are not in bash, and which are?
New things in ksh-93 not in bash-2.05a:
New things in ksh-93 not in bash-2.05b:
associative arrays
floating point arithmetic and variables
math library functions
@ -775,15 +816,14 @@ New things in ksh-93 not in bash-2.05a:
exit statuses between 0 and 255
set -o pipefail
`+=' variable assignment operator
TMOUT is default timeout for `read' and `select'
<&N- and >&N- redirections (combination dup and close)
FPATH and PATH mixing
getopts -a
-I invocation option
DEBUG trap now executed before each simple command, instead of after
printf %H, %P, %T, %Z modifiers, output base for %d
New things in ksh-93 present in bash-2.05a:
New things in ksh-93 present in bash-2.05b:
[n]<&word- and [n]>&word- redirections (combination dup and close)
for (( expr1; expr2; expr3 )) ; do list; done - arithmetic for command
?:, ++, --, `expr1 , expr2' arithmetic operators
expansions: ${!param}, ${param:offset[:len]}, ${param/pat[/str]},
@ -980,7 +1020,7 @@ ksh-93 feature Bash equivalent
sleep, getconf Bash has loadable versions in examples/loadables
${.sh.version} $BASH_VERSION
print -f printf
hist alias fc=hist
hist alias hist=fc
$HISTEDIT $FCEDIT
Section E: How can I get bash to do certain things, and why does bash do
@ -1139,7 +1179,7 @@ configure with the --enable-xpg-echo-default option to turn this
on. Be aware that this will cause some of the tests run when you
type `make tests' to fail.
There is a shell option, `xpg_echo', settable with `shopt' that will
There is a shell option, `xpg_echo', settable with `shopt', that will
change the behavior of echo at runtime. Enabling this option turns
on expansion of backslash-escape sequences.
@ -1215,10 +1255,9 @@ http://www.pasc.org/interps/unofficial/db/p1003.2/pasc-1003.2-173.html
E9) Why does the pattern matching expression [A-Z]* match files beginning
with every letter except `z'?
Bash-2.05 and later versions have reverted to the bash-2.03 behavior of
honoring the current locale setting when processing ranges within pattern
matching bracket expressions ([A-Z]). This is what POSIX.2 and SUSv2/XPG5
specify.
Bash-2.03, Bash-2.05 and later versions honor the current locale setting
when processing ranges within pattern matching bracket expressions ([A-Z]).
This is what POSIX.2 and SUSv3/XPG6 specify.
The behavior of the matcher in bash-2.05 and later versions depends on the
current LC_COLLATE setting. Setting this variable to `C' or `POSIX' will
@ -1229,7 +1268,11 @@ this:
AaBb...Zz
which means that [A-Z] matches every letter except `z'.
which means that [A-Z] matches every letter except `z'. Others collate like
aAbBcC...zZ
which means that [A-Z] matches every letter except `a'.
The portable way to specify upper case letters is [:upper:] instead of
A-Z; lower case may be specified as [:lower:] instead of a-z.
@ -1252,6 +1295,16 @@ from removing every file in the current directory except those beginning
with `z' and still allow individual users to change the collation order.
Users may put the above command into their own profiles as well, of course.
E10) Why does `cd //' leave $PWD as `//'?
POSIX.2, in its description of `cd', says that *three* or more leading
slashes may be replaced with a single slash when canonicalizing the
current working directory.
This is, I presume, for historical compatibility. Certain versions of
Unix, and early network file systems, used paths of the form
//hostname/path to access `path' on server `hostname'.
Section F: Things to watch out for on certain Unix versions
F1) Why can't I use command line editing in my `cmdtool'?
@ -1386,6 +1439,21 @@ to the beginning of /etc/inputrc, or bracket the key bindings in
[...]
$endif
F7) Why do bash-2.05a and bash-2.05b fail to compile `printf.def' on
HP/UX 11.x?
HP/UX's support for long double is imperfect at best.
GCC will support it without problems, but the HP C library functions
like strtold(3) and printf(3) don't actually work with long doubles.
HP implemented a `long_double' type as a 4-element array of 32-bit
ints, and that is what the library functions use. The ANSI C
`long double' type is a 128-bit floating point scalar.
The easiest fix, until HP fixes things up, is to edit the generated
config.h and #undef the HAVE_LONG_DOUBLE line. After doing that,
the compilation should complete successfully.
Section G: How can I get bash to do certain common things?
G1) How can I get bash to read and display eight-bit characters?
@ -1607,11 +1675,8 @@ H3) What's coming in future versions?
These are features I hope to include in a future version of bash.
a better bash debugger (a minimally-tested version is included with bash-2.05a)
a better bash debugger (a minimally-tested version is included with bash-2.05b)
associative arrays
changes to the DEBUG trap to be compatible with ksh93 (which runs the
trap before each simple command, instead of after each one like previous
versions)
co-processes, but with a new-style syntax that looks like function declaration
H4) What's on the bash `wish list' for future versions?
@ -1621,7 +1686,6 @@ These are features that may or may not appear in a future version of bash.
breaking some of the shell functionality into embeddable libraries
a module system like zsh's, using dynamic loading like builtins
better internationalization using GNU `gettext'
an option to use external files for the long `help' text
date-stamped command history
a bash programmer's guide with a chapter on creating loadable builtins
a better loadable interface to perl with access to the shell builtins and
@ -1637,7 +1701,7 @@ H5) When will the next release appear?
The next version will appear sometime in 2002. Never make predictions.
This document is Copyright 1995-2001 by Chester Ramey.
This document is Copyright 1995-2002 by Chester Ramey.
Permission is hereby granted, without written agreement and
without license or royalty fees, to use, copy, and distribute

View file

@ -65,6 +65,10 @@ PSDPI = 300 # could be 600 if you like
DVIPS = dvips -D ${PSDPI} $(QUIETPS) -t ${PAPERSIZE} -o $@ # tricky
TEXINPUTDIR = $(RL_LIBDIR)/doc
# These tools might not be available; they're not required
DVIPDF = dvipdfm -o $@ -p ${PAPERSIZE}
PSPDF = gs -sPAPERSIZE=${PAPERSIZE} -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=$@
MKDIRS = ${topdir}/support/mkdirs
# This should be a program that converts troff to an ascii-readable format
@ -76,7 +80,7 @@ GROFF = groff
HSUSER = $(RL_LIBDIR)/doc/hsuser.texinfo
RLUSER = $(RL_LIBDIR)/doc/rluser.texinfo
.SUFFIXES: .0 .1 .3 .ms .ps .txt .dvi .html
.SUFFIXES: .0 .1 .3 .ms .ps .txt .dvi .html .pdf
.1.ps:
$(RM) $@
@ -110,6 +114,14 @@ RLUSER = $(RL_LIBDIR)/doc/rluser.texinfo
$(RM) $@
-${MAN2HTML} $< > $@
.ps.pdf:
$(RM) $@
-${PSPDF} $<
.dvi.pdf:
$(RM) $@
-${DVIPDF} $<
all: ps info dvi text html
nodvi: ps info text html
@ -118,12 +130,14 @@ DVIFILES = bashref.dvi bashref.ps
INFOFILES = bashref.info
MAN0FILES = bash.0 bashbug.0 builtins.0 rbash.0
HTMLFILES = bashref.html bash.html
PDFFILES = bash.pdf bashref.pdf article.pdf rose94.pdf
ps: ${PSFILES}
dvi: ${DVIFILES}
info: ${INFOFILES}
text: ${MAN0FILES}
html: ${HTMLFILES}
pdf: ${PDFFILES}
bashref.dvi: $(srcdir)/bashref.texi $(HSUSER) $(RLUSER)
TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/bashref.texi
@ -148,12 +162,12 @@ new-bashref.ps: new-bashref.dvi
new-bashref.info: $(srcdir)/new-bashref.texi $(HSUSER) $(RLUSER)
$(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/new-bashref.texi
bash.dvi: bash.texinfo $(HSUSER) $(RLUSER)
TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) bash.texinfo
bashman.ps: bash.dvi
$(RM) $@
$(DVIPS) bash.dvi
#bash.dvi: bash.texinfo $(HSUSER) $(RLUSER)
# TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) bash.texinfo
#
#bashman.ps: bash.dvi
# $(RM) $@
# $(DVIPS) bash.dvi
bash.txt: bash.1
bash.ps: bash.1
@ -167,6 +181,11 @@ builtins.0: builtins.1 bash.1
rbash.0: rbash.1 bash.1
article.ps: article.ms
article.pdf: article.ps
bashref.pdf: bashref.dvi
bash.pdf: bash.ps
rose94.pdf: rose94.ps
$(MAN2HTML): ${topdir}/support/man2html.c
-( cd ${BUILD_DIR}/support ; ${MAKE} ${MFLAGS} man2html)
@ -175,7 +194,10 @@ clean:
*.pgs *.bt *.bts *.rw *.rws *.fns *.kys *.tps *.vrs *.o
${RM} core *.core
distclean mostlyclean: clean
mostlyclean: clean
$(RM) Makefile
distclean: clean maybe-clean
$(RM) Makefile
maintainer-clean: clean
@ -183,6 +205,11 @@ maintainer-clean: clean
${RM} ${CREATED_FAQ}
$(RM) Makefile
maybe-clean:
-if test "X$(topdir)" != "X$(BUILD_DIR)"; then \
$(RM) ${PSFILES} ${DVIFILES} ${INFOFILES} ${MAN0FILES} ${HTMLFILES}; \
fi
installdirs:
-test -d $(man1dir) || $(SHELL) ${MKDIRS} $(DESTDIR)$(man1dir)
-test -d $(infodir) || $(SHELL) ${MKDIRS} $(DESTDIR)$(infodir)
@ -250,7 +277,12 @@ inst: bashref.texi
posix: bashref.texi
$(SHELL) ./mkposix
cmp -s POSIX.NOTES ../CWRU/POSIX.NOTES || mv POSIX.NOTES ../CWRU/POSIX.NOTES
$(RM) POSIX.NOTES
cmp -s POSIX ../POSIX || mv POSIX ../POSIX
$(RM) POSIX
xdist: inst posix
rbash: bashref.texi
$(SH) ./mkrbash
cmp -s RBASH ../RBASH || mv RBASH ../RBASH
$(RM) RBASH
xdist: inst posix rbash

View file

@ -6,12 +6,12 @@
.\" Case Western Reserve University
.\" chet@ins.CWRU.Edu
.\"
.\" Last Change: Tue Nov 13 12:55:51 EST 2001
.\" Last Change: Mon Jul 15 15:20:56 EDT 2002
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2001 November 13" "GNU Bash-2.05a"
.TH BASH 1 "2002 July 15" "GNU Bash-2.05b"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@ -51,8 +51,8 @@ bash \- GNU Bourne-Again SHell
[options]
[file]
.SH COPYRIGHT
.if n Bash is Copyright (C) 1989-2001 by the Free Software Foundation, Inc.
.if t Bash is Copyright \(co 1989-2001 by the Free Software Foundation, Inc.
.if n Bash is Copyright (C) 1989-2002 by the Free Software Foundation, Inc.
.if t Bash is Copyright \(co 1989-2002 by the Free Software Foundation, Inc.
.SH DESCRIPTION
.B Bash
is an \fBsh\fR-compatible command language interpreter that
@ -81,6 +81,20 @@ If there are arguments after the
they are assigned to the positional parameters, starting with
.BR $0 .
.TP
.B \-i
If the
.B \-i
option is present, the shell is
.IR interactive .
.TP
.B \-l
Make
.B bash
act as if it had been invoked as a login shell (see
.SM
.B INVOCATION
below).
.TP
.B \-r
If the
.B \-r
@ -91,12 +105,6 @@ option is present, the shell becomes
.B "RESTRICTED SHELL"
below).
.TP
.B \-i
If the
.B \-i
option is present, the shell is
.IR interactive .
.TP
.B \-s
If the
.B \-s
@ -140,7 +148,7 @@ is equivalent to \fB\-\-\fP.
.B Bash
also interprets a number of multi-character options.
These options must appear on the command line before the
single-character options in order for them to be recognized.
single-character options to be recognized.
.PP
.PD 0
.TP
@ -154,8 +162,8 @@ Equivalent to \fB\-D\fP.
.B \-\-help
Display a usage message on standard output and exit successfully.
.TP
.PD 0
\fB\-\-init\-file\fP \fIfile\fP
.PD 0
.TP
\fB\-\-rcfile\fP \fIfile\fP
.PD
@ -169,12 +177,7 @@ if the shell is interactive (see
below).
.TP
.B \-\-login
Make
.B bash
act as if it had been invoked as a login shell (see
.SM
.B INVOCATION
below).
Equivalent to \fB\-l\fP.
.TP
.B \-\-noediting
Do not use the GNU
@ -560,6 +563,9 @@ and
.BR &,
which have equal precedence.
.PP
A sequence of one or more newlines may appear in a \fIlist\fP instead
of a semicolon to delimit commands.
.PP
If a command is terminated by the control operator
.BR & ,
the shell executes the command in the \fIbackground\fP
@ -685,7 +691,7 @@ is true.
The \fB&&\fP and
.if t \fB\(bv\(bv\fP
.if n \fB||\fP
operators do not execute \fIexpression2\fP if the value of
operators do not evaluate \fIexpression2\fP if the value of
\fIexpression1\fP is sufficient to determine the return value of
the entire conditional expression.
.RE
@ -773,8 +779,8 @@ command completes. Otherwise, the \fBelse\fP \fIlist\fP is
executed, if present. The exit status is the exit status of the
last command executed, or zero if no condition tested true.
.TP
.PD 0
\fBwhile\fP \fIlist\fP; \fBdo\fP \fIlist\fP; \fBdone\fP
.PD 0
.TP
\fBuntil\fP \fIlist\fP; \fBdo\fP \fIlist\fP; \fBdone\fP
.PD
@ -929,6 +935,9 @@ the eight-bit character whose value is the octal value \fInnn\fP
.B \ex\fIHH\fP
the eight-bit character whose value is the hexadecimal value \fIHH\fP
(one or two hex digits)
.TP
.B \ec\fIx\fP
a control-\fIx\fP character
.PD
.RE
.LP
@ -1417,7 +1426,9 @@ This is a colon-separated list of directories in which the shell looks
for destination directories specified by the
.B cd
command.
A sample value is ``.:~:/usr''.
A sample value is
.if t \f(CW".:~:/usr"\fP.
.if n ".:~:/usr".
.TP
.B COLUMNS
Used by the \fBselect\fP builtin command to determine the terminal width
@ -1443,7 +1454,9 @@ A filename whose suffix matches one of the entries in
.SM
.B FIGNORE
is excluded from the list of matched filenames.
A sample value is ``.o:~''.
A sample value is
.if t \f(CW".o:~"\fP.
.if n ".o:~".
.TP
.B GLOBIGNORE
A colon-separated list of patterns defining the set of filenames to
@ -1761,7 +1774,11 @@ If the value is null, no timing information is displayed.
A trailing newline is added when the format string is displayed.
.TP
.B TMOUT
If set to a value greater than zero, the value is interpreted as the
If set to a value greater than zero, \fBTMOUT\fP is treated as the
default timeout for the \fBread\fP builtin.
The \fBselect\fP command terminates if input does not arrive
after \fBTMOUT\fP seconds when input is coming from a terminal.
In an interactive shell, the value is interpreted as the
number of seconds to wait for input after issuing the primary prompt.
.B Bash
terminates after waiting for that number of seconds if input does
@ -2150,8 +2167,8 @@ is null or unset, nothing is substituted, otherwise the expansion of
.I word
is substituted.
.TP
.PD 0
${\fIparameter\fP\fB:\fP\fIoffset\fP}
.PD 0
.TP
${\fIparameter\fP\fB:\fP\fIoffset\fP\fB:\fP\fIlength\fP}
.PD
@ -2200,8 +2217,8 @@ or
.BR @ ,
the value substituted is the number of elements in the array.
.TP
.PD 0
${\fIparameter\fP\fB#\fP\fIword\fP}
.PD 0
.TP
${\fIparameter\fP\fB##\fP\fIword\fP}
.PD
@ -2232,8 +2249,8 @@ or
the pattern removal operation is applied to each member of the
array in turn, and the expansion is the resultant list.
.TP
.PD 0
${\fIparameter\fP\fB%\fP\fIword\fP}
.PD 0
.TP
${\fIparameter\fP\fB%%\fP\fIword\fP}
.PD
@ -2262,8 +2279,8 @@ or
the pattern removal operation is applied to each member of the
array in turn, and the expansion is the resultant list.
.TP
.PD 0
${\fIparameter\fP\fB/\fP\fIpattern\fP\fB/\fP\fIstring\fP}
.PD 0
.TP
${\fIparameter\fP\fB//\fP\fIpattern\fP\fB/\fP\fIstring\fP}
.PD
@ -2596,10 +2613,11 @@ following classes defined in the POSIX.2 standard:
.PP
.RS
.B
.if n alnum alpha ascii blank cntrl digit graph lower print punct space upper xdigit
.if t alnum alpha ascii blank cntrl digit graph lower print punct space upper xdigit
.if n alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit
.if t alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit
.br
A character class matches any character belonging to that class.
The \fBword\fP character class matches letters, digits, and the character _.
.br
.if t .sp 0.5
.if n .sp 1
@ -2849,7 +2867,7 @@ is seen. All of
the lines read up to that point are then used as the standard
input for a command.
.PP
The format of here-documents is as follows:
The format of here-documents is:
.RS
.PP
.nf
@ -2890,6 +2908,17 @@ line containing
This allows
here-documents within shell scripts to be indented in a
natural fashion.
.SS "Here Strings"
A variant of here documents, the format is:
.RS
.PP
.nf
\fB<<<\fP\fIword\fP
.fi
.RE
.PP
The \fIword\fP is expanded and supplied to the command on its standard
input.
.SS "Duplicating File Descriptors"
.PP
The redirection operator
@ -2932,6 +2961,28 @@ do not specify a file descriptor open for output, a redirection error occurs.
As a special case, if \fIn\fP is omitted, and \fIword\fP does not
expand to one or more digits, the standard output and standard
error are redirected as described previously.
.SS "Moving File Descriptors"
.PP
The redirection operator
.RS
.PP
[\fIn\fP]\fB<&\fP\fIdigit\fP\fB\-\fP
.RE
.PP
moves the file descriptor \fIdigit\fP to file descriptor
.IR n ,
or the standard input (file descriptor 0) if \fIn\fP is not specified.
\fIdigit\fP is closed after being duplicated to \fIn\fP.
.PP
Similarly, the redirection operator
.RS
.PP
[\fIn\fP]\fB>&\fP\fIdigit\fP\fB\-\fP
.RE
.PP
moves the file descriptor \fIdigit\fP to file descriptor
.IR n ,
or the standard output (file descriptor 1) if \fIn\fP is not specified.
.SS "Opening File Descriptors for Reading and Writing"
.PP
The redirection operator
@ -3058,7 +3109,11 @@ trap (see the description of the
builtin under
.SM
.B SHELL BUILTIN COMMANDS
below) is not inherited.
below) is not inherited unless the function has been given the
\fBtrace\fP attribute (see the description of the
.SM
.B declare
builtin below).
.PP
Variables local to the function may be declared with the
.B local
@ -3101,7 +3156,7 @@ of recursive calls.
The shell allows arithmetic expressions to be evaluated, under
certain circumstances (see the \fBlet\fP builtin command and
\fBArithmetic Expansion\fP).
Evaluation is done in long integers with no check for overflow,
Evaluation is done in fixed-width integers with no check for overflow,
though division by 0 is trapped and flagged as an error.
The operators and their precedence and associativity are the same
as in the C language.
@ -3269,14 +3324,15 @@ True if \fIfile\fP exists and is a socket.
True if \fIfile\fP exists and has been modified since it was last read.
.TP
\fIfile1\fP \-\fBnt\fP \fIfile2\fP
True if \fIfile1\fP is newer (according to
modification date) than \fIfile2\fP.
True if \fIfile1\fP is newer (according to modification date) than \fIfile2\fP,
or if \fIfile1\fP exists and \fPfile2\fP does not.
.TP
\fIfile1\fP \-\fBot\fP \fIfile2\fP
True if \fIfile1\fP is older than \fIfile2\fP.
True if \fIfile1\fP is older than \fIfile2\fP, or if \fIfile2\fP exists
and \fIfile1\fP does not.
.TP
\fIfile1\fP \fB\-ef\fP \fIfile2\fP
True if \fIfile1\fP and \fIfile2\fP have the same device and
True if \fIfile1\fP and \fIfile2\fP refer to the same device and
inode numbers.
.TP
.B \-o \fIoptname\fP
@ -3301,7 +3357,7 @@ is non-zero.
.TP
\fIstring1\fP \fB==\fP \fIstring2\fP
True if the strings are equal. \fB=\fP may be used in place of
\fB==\fP.
\fB==\fP for strict POSIX compliance.
.TP
\fIstring1\fP \fB!=\fP \fIstring2\fP
True if the strings are not equal.
@ -3851,6 +3907,11 @@ an ASCII bell character (07)
.B \ed
the date in "Weekday Month Date" format (e.g., "Tue May 26")
.TP
.B \eD{\fIformat\fP}
the \fIformat\fP is passed to \fIstrftime\fP(3) and the result is inserted
into the prompt string; an empty \fIformat\fP results in a locale-specific
time representation. The braces are required
.TP
.B \ee
an ASCII escape character (033)
.TP
@ -4328,6 +4389,11 @@ appended.
If set to \fBOn\fP, history lines that have been modified are displayed
with a preceding asterisk (\fB*\fP).
.TP
.B mark\-symlinked\-directories (Off)
If set to \fBOn\fP, completed names which are symbolic links to directories
have a slash appended (subject to the value of
\fBmark\-directories\fP).
.TP
.B match\-hidden\-files (On)
This variable, when set to \fBOn\fP, causes readline to match files whose
names begin with a `.' (hidden files) when performing filename
@ -4339,6 +4405,10 @@ If set to \fBOn\fP, readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
sequence.
.TP
.B page\-completions (On)
If set to \fBOn\fP, readline uses an internal \fImore\fP-like pager
to display a screenful of possible completions at a time.
.TP
.B print\-completions\-horizontally (Off)
If set to \fBOn\fP, readline will display completions with matches
sorted horizontally in alphabetical order, rather than down the screen.
@ -4616,6 +4686,16 @@ A synonym for \fByank\-last\-arg\fP.
Accept the current line for execution and fetch the next line
relative to the current line from the history for editing. Any
argument is ignored.
.TP
.B edit\-and\-execute\-command (C\-xC\-e)
Invoke an editor on the current command line, and execute the result as shell
commands.
\fBBash\fP attempts to invoke
.SM
.BR $FCEDIT ,
.SM
.BR $EDITOR ,
and \fIemacs\fP as the editor, in that order.
.PD
.SS Commands for Changing Text
.PP
@ -4672,6 +4752,17 @@ lowercase the previous word, but do not move point.
.B capitalize\-word (M\-c)
Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move point.
.TP
.B overwrite\-mode
Toggle overwrite mode. With an explicit positive numeric argument,
switches to overwrite mode. With an explicit non-positive numeric
argument, switches to insert mode. This command affects only
\fBemacs\fP mode; \fBvi\fP mode does overwrite differently.
Each call to \fIreadline()\fP starts in insert mode.
In overwrite mode, characters bound to \fBself\-insert\fP replace
the text at point rather than pushing the text to the right.
Characters bound to \fBbackward\-delete\-char\fP replace the character
before point with a space. By default, this command is unbound.
.PD
.SS Killing and Yanking
.PP
@ -4915,21 +5006,38 @@ A character is read and point is moved to the previous occurrence of that
character. A negative count searches for subsequent occurrences.
.TP
.B insert\-comment (M\-#)
The value of the readline
Without a numeric argument, the value of the readline
.B comment\-begin
variable is inserted at the beginning of the current line, and the line
is accepted as if a newline had been typed. The default value of
variable is inserted at the beginning of the current line.
If a numeric argument is supplied, this command acts as a toggle: if
the characters at the beginning of the line do not match the value
of \fBcomment\-begin\fP, the value is inserted, otherwise
the characters in \fBcomment-begin\fP are deleted from the beginning of
the line.
In either case, the line is accepted as if a newline had been typed.
The default value of
\fBcomment\-begin\fP causes this command to make the current line
a shell comment.
If a numeric argument causes the comment character to be removed, the line
will be executed by the shell.
.TP
.B glob\-complete\-word (M\-g)
The word before point is treated as a pattern for pathname expansion,
with an asterisk implicitly appended. This pattern is used to
generate a list of matching file names for possible completions.
.TP
.B glob\-expand\-word (C\-x *)
The word before point is treated as a pattern for pathname expansion,
and the list of matching file names is inserted, replacing the word.
If a numeric argument is supplied, an asterisk is appended before
pathname expansion.
.TP
.B glob\-list\-expansions (C\-x g)
The list of expansions that would have been generated by
.B glob\-expand\-word
is displayed, and the line is redrawn.
If a numeric argument is supplied, an asterisk is appended before
pathname expansion.
.TP
.B dump\-functions
Print all of the functions and their key bindings to the
@ -5083,6 +5191,12 @@ default of filename completion is disabled.
If the \fB-o default\fP option was supplied to \fBcomplete\fP when the
compspec was defined, readline's default completion will be performed
if the compspec generates no matches.
.PP
When a compspec indicates that directory name completion is desired,
the programmable completion functions force readline to append a slash
to completed names which are symbolic links to directories, subject to
the value of the \fBmark\-directories\fP readline variable, regardless
of the setting of the \fBmark-symlinked\-directories\fP readline variable.
.SH HISTORY
When the
.B \-o history
@ -5460,8 +5574,8 @@ No effect; the command does nothing beyond expanding
and performing any specified
redirections. A zero exit code is returned.
.TP
.PD 0
\fB .\| \fP \fIfilename\fP [\fIarguments\fP]
.PD 0
.TP
\fBsource\fP \fIfilename\fP [\fIarguments\fP]
.PD
@ -5528,8 +5642,8 @@ returns 0 unless run when job control is disabled or, when run with
job control enabled, if \fIjobspec\fP was not found or started without
job control.
.TP
.PD 0
\fBbind\fP [\fB\-m\fP \fIkeymap\fP] [\fB\-lpsvPSV\fP]
.PD 0
.TP
\fBbind\fP [\fB\-m\fP \fIkeymap\fP] [\fB\-q\fP \fIfunction\fP] [\fB\-u\fP \fIfunction\fP] [\fB\-r\fP \fIkeyseq\fP]
.TP
@ -5538,16 +5652,21 @@ job control.
\fBbind\fP [\fB\-m\fP \fIkeymap\fP] \fB\-x\fP \fIkeyseq\fP:\fIshell\-command\fP
.TP
\fBbind\fP [\fB\-m\fP \fIkeymap\fP] \fIkeyseq\fP:\fIfunction\-name\fP
.TP
\fBbind\fP \fIreadline\-command\fP
.PD
Display current
.B readline
key and function bindings, or bind a key sequence to a
key and function bindings, bind a key sequence to a
.B readline
function or macro. The binding syntax accepted is identical to that of
function or macro, or set a
.B readline
variable.
Each non-option argument is a command as it would appear in
.IR .inputrc ,
but each binding must be passed as a separate argument;
e.g., '"\eC\-x\eC\-r": re\-read\-init\-file'. Options, if supplied, have the
following meanings:
but each binding or command must be passed as a separate argument;
e.g., '"\eC\-x\eC\-r": re\-read\-init\-file'.
Options, if supplied, have the following meanings:
.RS
.PD 0
.TP
@ -5639,7 +5758,7 @@ The return status is false if
.I shell\-builtin
is not a shell builtin command.
.TP
\fBcd\fP [\fB\-LP\fP] [\fIdir\fP]
\fBcd\fP [\fB\-L|-P\fP] [\fIdir\fP]
Change the current directory to \fIdir\fP. The variable
.SM
.B HOME
@ -5743,10 +5862,10 @@ will be displayed.
The return value is true unless an invalid option is supplied, or no
matches were generated.
.TP
.PD 0
\fBcomplete\fP [\fB\-abcdefgjkvu\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-P\fP \fIprefix\fP] [\fB\-S\fP \fIsuffix\fP]
\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-P\fP \fIprefix\fP] [\fB\-S\fP \fIsuffix\fP]
.br
[\fB\-X\fP \fIfilterpat\fP] [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP] \fIname\fP [\fIname ...\fP]
.PD 0
.TP
\fBcomplete\fP \fB\-pr\fP [\fIname\fP ...]
.PD
@ -5777,7 +5896,8 @@ beyond the simple generation of completions.
.RS
.TP 8
.B default
Use readline's default completion if the compspec generates no matches.
Use readline's default filename completion if the compspec generates
no matches.
.TP 8
.B dirnames
Perform directory name completion if the compspec generates no matches.
@ -5786,6 +5906,10 @@ Perform directory name completion if the compspec generates no matches.
Tell readline that the compspec generates filenames, so it can perform any
filename\-specific processing (like adding a slash to directory names or
suppressing trailing spaces). Intended to be used with shell functions.
.TP 8
.B nospace
Tell readline not to append a space (the default) to words completed at
the end of the line.
.RE
.TP 8
\fB\-A\fP \fIaction\fP
@ -5847,6 +5971,9 @@ Shell reserved words. May also be specified as \fB\-k\fP.
.B running
Names of running jobs, if job control is active.
.TP 8
.B service
Service names. May also be specified as \fB\-s\fP.
.TP 8
.B setopt
Valid arguments for the \fB\-o\fP option to the \fBset\fP builtin.
.TP 8
@ -5935,10 +6062,10 @@ shell is not executing a loop when
.B continue
is executed.
.TP
\fBdeclare\fP [\fB\-afFirtx\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP]]
.PD 0
\fBdeclare\fP [\fB\-afFirx\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP]]
.TP
\fBtypeset\fP [\fB\-afFirx\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP]]
\fBtypeset\fP [\fB\-afFirtx\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP]]
.PD
Declare variables and/or give them attributes.
If no \fIname\fPs are given then display the values of variables.
@ -5981,6 +6108,11 @@ is performed when the variable is assigned a value.
Make \fIname\fPs readonly. These names cannot then be assigned values
by subsequent assignment statements or unset.
.TP
.B \-t
Give each \fIname\fP the \fItrace\fP attribute.
Traced functions inherit the \fBDEBUG\fP trap from the calling shell.
The trace attribute has no special meaning for variables.
.TP
.B \-x
Mark \fIname\fPs for export to subsequent commands via the environment.
.PD
@ -6132,9 +6264,13 @@ vertical tab
.B \e\e
backslash
.TP
.B \e0\fInnn\fP
the eight-bit character whose value is the octal value \fInnn\fP
(zero to three octal digits)
.TP
.B \e\fInnn\fP
the eight-bit character whose value is the octal value \fInnn\fP
(one to three digits)
(one to three octal digits)
.TP
.B \ex\fIHH\fP
the eight-bit character whose value is the hexadecimal value \fIHH\fP
@ -6239,8 +6375,8 @@ A trap on
.B EXIT
is executed before the shell terminates.
.TP
.PD 0
\fBexport\fP [\fB\-fn\fP\^] [\fIname\fP[=\fIword\fP]] ...
.PD 0
.TP
.B export \-p
.PD
@ -6272,8 +6408,8 @@ is supplied with a
.I name
that is not a function.
.TP
.PD 0
\fBfc\fP [\fB\-e\fP \fIename\fP] [\fB\-nlr\fP] [\fIfirst\fP] [\fIlast\fP]
.PD 0
.TP
\fBfc\fP \fB\-s\fP [\fIpat\fP=\fIrep\fP] [\fIcmd\fP]
.PD
@ -6484,7 +6620,7 @@ returns true if an option, specified or unspecified, is found.
It returns false if the end of options is encountered or an
error occurs.
.TP
\fBhash\fP [\fB\-r\fP] [\fB\-p\fP \fIfilename\fP] [\fB\-t\fP] [\fIname\fP]
\fBhash\fP [\fB\-lr\fP] [\fB\-p\fP \fIfilename\fP] [\fB\-dt\fP] [\fIname\fP]
For each
.IR name ,
the full file name of the command is determined by searching
@ -6500,12 +6636,19 @@ The
.B \-r
option causes the shell to forget all
remembered locations.
The
.B \-d
option causes the shell to forget the remembered location of each \fIname\fP.
If the
.B \-t
option is supplied, the full pathname to which each \fIname\fP corresponds
is printed. If multiple \fIname\fP arguments are supplied with \fB\-t\fP,
the \fIname\fP is printed before the hashed full pathname.
If no arguments are given, information about remembered commands is printed.
The
.B \-l
option causes output to be displayed in a format that may be reused as input.
If no arguments are given, or if only \fB\-l\fP is supplied,
information about remembered commands is printed.
The return status is true unless a
.I name
is not found or an invalid option is supplied.
@ -6524,8 +6667,8 @@ usage synopsis.
The return status is 0 unless no command matches
.IR pattern .
.TP
.PD 0
\fBhistory [\fIn\fP]
.PD 0
.TP
\fBhistory\fP \fB\-c\fP
.TP
@ -6598,8 +6741,8 @@ error occurs while reading or writing the history file, an invalid
history expansion supplied as an argument to \fB\-p\fP fails.
.RE
.TP
.PD 0
\fBjobs\fP [\fB\-lnprs\fP] [ \fIjobspec\fP ... ]
.PD 0
.TP
\fBjobs\fP \fB\-x\fP \fIcommand\fP [ \fIargs\fP ... ]
.PD
@ -6652,8 +6795,8 @@ passing it
returning its exit status.
.RE
.TP
.PD 0
\fBkill\fP [\fB\-s\fP \fIsigspec\fP | \fB\-n\fP \fIsignum\fP | \fB\-\fP\fIsigspec\fP] [\fIpid\fP | \fIjobspec\fP] ...
.PD 0
.TP
\fBkill\fP \fB\-l\fP [\fIsigspec\fP | \fIexit_status\fP]
.PD
@ -6805,8 +6948,8 @@ extra format specifications behave as if a zero value or null string, as
appropriate, had been supplied. The return value is zero on success,
non-zero on failure.
.TP
.PD 0
\fBpushd\fP [\fB\-n\fP] [\fIdir\fP]
.PD 0
.TP
\fBpushd\fP [\fB\-n\fP] [+\fIn\fP] [\-\fIn\fP]
.PD
@ -6875,8 +7018,9 @@ The return status is 0 unless an error occurs while
reading the name of the current directory or an
invalid option is supplied.
.TP
\fBread\fP [\fB\-ers\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-a\fP \fIaname\fP] [\fB\-p\fP \fIprompt\fP] [\fB\-n\fP \fInchars\fP] [\fB\-d\fP \fIdelim\fP] [\fIname\fP ...]
One line is read from the standard input, and the first word
\fBread\fP [\fB\-ers\fP] [\fB\-u\fP \fIfd\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-a\fP \fIaname\fP] [\fB\-p\fP \fIprompt\fP] [\fB\-n\fP \fInchars\fP] [\fB\-d\fP \fIdelim\fP] [\fIname\fP ...]
One line is read from the standard input, or from the file descriptor
\fIfd\fP supplied as an argument to the \fB\-u\fP option, and the first word
is assigned to the first
.IR name ,
the second word to the second
@ -6884,7 +7028,7 @@ the second word to the second
and so on, with leftover words and their intervening separators assigned
to the last
.IR name .
If there are fewer words read from the standard input than names,
If there are fewer words read from the input stream than names,
the remaining names are assigned empty values.
The characters in
.SM
@ -6942,6 +7086,9 @@ Cause \fBread\fP to time out and return failure if a complete line of
input is not read within \fItimeout\fP seconds.
This option has no effect if \fBread\fP is not reading input from the
terminal or a pipe.
.TP
.B \-u \fIfd\FP
Read input from file descriptor \fIfd\fP.
.PD
.PP
If no
@ -6949,8 +7096,9 @@ If no
are supplied, the line read is assigned to the variable
.SM
.BR REPLY .
The return code is zero, unless end-of-file is encountered or \fBread\fP
times out.
The return code is zero, unless end-of-file is encountered, \fBread\fP
times out, or an invalid file descriptor is supplied as the argument to
\fB\-u\fP.
.RE
.TP
\fBreadonly\fP [\fB\-apf\fP] [\fIname\fP ...]
@ -7573,8 +7721,8 @@ the shell is a login shell and
.B \-f
is not supplied, or if job control is not enabled.
.TP
.PD 0
\fBtest\fP \fIexpr\fP
.PD 0
.TP
\fB[\fP \fIexpr\fP \fB]\fP
Return a status of 0 or 1 depending on
@ -7761,7 +7909,7 @@ is invalid; otherwise
.B trap
returns true.
.TP
\fBtype\fP [\fB\-atp\fP] \fIname\fP [\fIname\fP ...]
\fBtype\fP [\fB\-aftpP\fP] \fIname\fP [\fIname\fP ...]
With no options,
indicate how each
.I name
@ -7798,9 +7946,21 @@ or nothing if
.if n ``type -t name''
would not return
.IR file .
The
.B \-P
option forces a
.SM
.B PATH
search for each \fIname\fP, even if
.if t \f(CWtype -t name\fP
.if n ``type -t name''
would not return
.IR file .
If a command is hashed,
.B \-p
prints the hashed value, not necessarily the file that appears
and
.B \-P
print the hashed value, not necessarily the file that appears
first in
.SM
.BR PATH .
@ -7818,6 +7978,9 @@ option is not also used.
The table of hashed commands is not consulted
when using
.BR \-a .
The
.B \-f
option suppresses shell function lookup, as with the \fBcommand\fP builtin.
.B type
returns true if any of the arguments are found, false if
none are found.
@ -8057,6 +8220,8 @@ options to the
.B enable
builtin command
.IP \(bu
Using the \fBenable\fP builtin command to enable disabled shell builtins
.IP \(bu
specifying the
.B \-p
option to the

File diff suppressed because it is too large Load diff

View file

@ -5,13 +5,13 @@
@c %**end of header
@ignore
Last Change: Tue Nov 13 12:48:51 EST 2001
Last Change: Mon Jul 15 15:21:16 EDT 2002
@end ignore
@set EDITION 2.5a
@set VERSION 2.05a
@set UPDATED 13 November 2001
@set UPDATE-MONTH November 2001
@set EDITION 2.5b
@set VERSION 2.05b
@set UPDATED 15 July 2002
@set UPDATE-MONTH July 2002
@iftex
@finalout
@ -36,7 +36,7 @@ This is Edition @value{EDITION}, last updated @value{UPDATED},
of @cite{The GNU Bash Reference Manual},
for @code{Bash}, Version @value{VERSION}.
Copyright (C) 1991-2001 Free Software Foundation, Inc.
Copyright (C) 1991-2002 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@ -70,7 +70,7 @@ by the Free Software Foundation.
@author Brian Fox, Free Software Foundation
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1991-1999 Free Software Foundation, Inc.
Copyright @copyright{} 1991-2002 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@ -100,7 +100,7 @@ This is Edition @value{EDITION}, last updated @value{UPDATED},
of @cite{The GNU Bash Reference Manual},
for @code{Bash}, Version @value{VERSION}.
Copyright (C) 1991, 1993, 1996 Free Software Foundation, Inc.
Copyright (C) 1991-2002 Free Software Foundation, Inc.
Bash contains features that appear in other popular shells, and some
features that only appear in Bash. Some of the shells that Bash has
@ -548,6 +548,8 @@ the eight-bit character whose value is the octal value @var{nnn}
@item \x@var{HH}
the eight-bit character whose value is the hexadecimal value @var{HH}
(one or two hex digits)
@item \c@var{x}
a control-@var{x} character
@end table
@noindent
@ -688,6 +690,9 @@ Of these list operators, @samp{&&} and @samp{||}
have equal precedence, followed by @samp{;} and @samp{&},
which have equal precedence.
A sequence of one or more newlines may appear in a @code{list}
to delimit commands, equivalent to a semicolon.
If a command is terminated by the control operator @samp{&},
the shell executes the command asynchronously in a subshell.
This is known as executing the command in the @var{background}.
@ -972,7 +977,7 @@ True if both @var{expression1} and @var{expression2} are true.
True if either @var{expression1} or @var{expression2} is true.
@end table
@noindent
The @code{&&} and @code{||} commands do not execute @var{expression2} if the
The @code{&&} and @code{||} operators do not evaluate @var{expression2} if the
value of @var{expression1} is sufficient to determine the return
value of the entire conditional expression.
@ -1778,10 +1783,12 @@ using the syntax
following classes defined in the @sc{posix} 1003.2 standard:
@example
alnum alpha ascii blank cntrl digit graph lower
print punct space upper xdigit
print punct space upper word xdigit
@end example
@noindent
A character class matches any character belonging to that class.
The @code{word} character class matches letters, digits, and the character
@samp{_}.
Within @samp{[} and @samp{]}, an @var{equivalence class} can be
specified using the syntax @code{[=}@var{c}@code{=]}, which
@ -1905,20 +1912,20 @@ is not specified.
The general format for redirecting input is:
@example
[n]<@var{word}
[@var{n}]<@var{word}
@end example
@subsection Redirecting Output
Redirection of output causes the file whose name results from
the expansion of @var{word}
to be opened for writing on file descriptor @code{n},
or the standard output (file descriptor 1) if @code{n}
to be opened for writing on file descriptor @var{n},
or the standard output (file descriptor 1) if @var{n}
is not specified. If the file does not exist it is created;
if it does exist it is truncated to zero size.
The general format for redirecting output is:
@example
[n]>[|]@var{word}
[@var{n}]>[|]@var{word}
@end example
If the redirection operator is @samp{>}, and the @code{noclobber}
@ -1933,13 +1940,13 @@ is attempted even if the file named by @var{word} exists.
Redirection of output in this fashion
causes the file whose name results from
the expansion of @var{word}
to be opened for appending on file descriptor @code{n},
or the standard output (file descriptor 1) if @code{n}
to be opened for appending on file descriptor @var{n},
or the standard output (file descriptor 1) if @var{n}
is not specified. If the file does not exist it is created.
The general format for appending output is:
@example
[n]>>@var{word}
[@var{n}]>>@var{word}
@end example
@subsection Redirecting Standard Output and Standard Error
@ -1973,7 +1980,7 @@ current source until a line containing only @var{word}
the lines read up to that point are then used as the standard
input for a command.
The format of here-documents is as follows:
The format of here-documents is:
@example
<<[@minus{}]@var{word}
@var{here-document}
@ -1998,45 +2005,71 @@ line containing @var{delimiter}.
This allows here-documents within shell scripts to be indented in a
natural fashion.
@subsection Here Strings
A variant of here documents, the format is:
@example
<<< @var{word}
@end example
The @var{word} is expanded and supplied to the command on its standard
input.
@subsection Duplicating File Descriptors
The redirection operator
@example
[n]<&@var{word}
[@var{n}]<&@var{word}
@end example
@noindent
is used to duplicate input file descriptors.
If @var{word}
expands to one or more digits, the file descriptor denoted by @code{n}
expands to one or more digits, the file descriptor denoted by @var{n}
is made to be a copy of that file descriptor.
If the digits in @var{word} do not specify a file descriptor open for
input, a redirection error occurs.
If @var{word}
evaluates to @samp{-}, file descriptor @code{n} is closed. If
@code{n} is not specified, the standard input (file descriptor 0) is used.
evaluates to @samp{-}, file descriptor @var{n} is closed. If
@var{n} is not specified, the standard input (file descriptor 0) is used.
The operator
@example
[n]>&@var{word}
[@var{n}]>&@var{word}
@end example
@noindent
is used similarly to duplicate output file descriptors. If
@code{n}
is not specified, the standard output (file descriptor 1) is used.
@var{n} is not specified, the standard output (file descriptor 1) is used.
If the digits in @var{word} do not specify a file descriptor open for
output, a redirection error occurs.
As a special case, if @code{n} is omitted, and @var{word} does not
As a special case, if @var{n} is omitted, and @var{word} does not
expand to one or more digits, the standard output and standard
error are redirected as described previously.
@subsection Moving File Descriptors
The redirection operator
@example
[@var{n}]<&@var{digit}-
@end example
@noindent
moves the file descriptor @var{digit} to file descriptor @var{n},
or the standard input (file descriptor 0) if @var{n} is not specified.
@var{digit} is closed after being duplicated to @var{n}.
Similarly, the redirection operator
@example
[@var{n}]>&@var{digit}-
@end example
@noindent
moves the file descriptor @var{digit} to file descriptor @var{n},
or the standard output (file descriptor 1) if @var{n} is not specified.
@subsection Opening File Descriptors for Reading and Writing
The redirection operator
@example
[n]<>@var{word}
[@var{n}]<>@var{word}
@end example
@noindent
causes the file whose name is the expansion of @var{word}
to be opened for both reading and writing on file descriptor
@code{n}, or on file descriptor 0 if @code{n}
@var{n}, or on file descriptor 0 if @var{n}
is not specified. If the file does not exist, it is created.
@node Executing Commands
@ -2501,7 +2534,7 @@ The return status is zero unless @var{n} is not greater than or equal to 1.
@item cd
@btindex cd
@example
cd [-LP] [@var{directory}]
cd [-L|-P] [@var{directory}]
@end example
Change the current working directory to @var{directory}. If @var{directory}
is not given, the value of the @env{HOME} shell variable is used. If the
@ -2637,7 +2670,7 @@ If @code{getopts} is silent, then a colon (@samp{:}) is placed in
@item hash
@btindex hash
@example
hash [-r] [-p @var{filename}] [-t] [@var{name}]
hash [-'r] [-p @var{filename}] [-dt] [@var{name}]
@end example
Remember the full pathnames of commands specified as @var{name} arguments,
so they need not be searched for on subsequent invocations.
@ -2646,11 +2679,16 @@ The commands are found by searching through the directories listed in
The @option{-p} option inhibits the path search, and @var{filename} is
used as the location of @var{name}.
The @option{-r} option causes the shell to forget all remembered locations.
The @option{-d} option causes the shell to forget the remembered location
of each @var{name}.
If the @option{-t} option is supplied, the full pathname to which each
@var{name} corresponds is printed. If multiple @var{name} arguments are
supplied with @option{-t} the @var{name} is printed before the hashed
full pathname.
If no arguments are given, information about remembered commands is printed.
The @option{-l} option causes output to be displayed in a format
that may be reused as input.
If no arguments are given, or if only @option{-l} is supplied,
information about remembered commands is printed.
The return status is zero unless a @var{name} is not found or an invalid
option is supplied.
@ -2905,14 +2943,16 @@ bind [-m @var{keymap}] [-q @var{function}] [-u @var{function}] [-r @var{keyseq}]
bind [-m @var{keymap}] -f @var{filename}
bind [-m @var{keymap}] -x @var{keyseq:shell-command}
bind [-m @var{keymap}] @var{keyseq:function-name}
bind @var{readline-command}
@end example
Display current Readline (@pxref{Command Line Editing})
key and function bindings, or
bind a key sequence to a Readline function or macro. The
binding syntax accepted is identical to that of
key and function bindings,
bind a key sequence to a Readline function or macro,
or set a Readline variable.
Each non-option argument is a command as it would appear in a
a Readline initialization file (@pxref{Readline Init File}),
but each binding must be passed as a separate argument: e.g.,
but each binding or command must be passed as a separate argument; e.g.,
@samp{"\C-x\C-r":re-read-init-file}.
Options, if supplied, have the following meanings:
@ -3019,7 +3059,7 @@ zero if @var{command} is found, and non-zero if not.
@item declare
@btindex declare
@example
declare [-afFrxi] [-p] [@var{name}[=@var{value}]]
declare [-afFirtx] [-p] [@var{name}[=@var{value}]]
@end example
Declare variables and give them attributes. If no @var{name}s
@ -3049,6 +3089,11 @@ performed when the variable is assigned a value.
Make @var{name}s readonly. These names cannot then be assigned values
by subsequent assignment statements or unset.
@item -t
Give each @var{name} the @code{trace} attribute.
Traced functions inherit the @code{DEBUG} trap from the calling shell.
The trace attribute has no special meaning for variables.
@item -x
Mark each @var{name} for export to subsequent commands via
the environment.
@ -3106,9 +3151,12 @@ horizontal tab
vertical tab
@item \\
backslash
@item \0@var{nnn}
the eight-bit character whose value is the octal value @var{nnn}
(zero to three octal digits)
@item \@var{nnn}
the eight-bit character whose value is the octal value @var{nnn}
(one to three digits)
(one to three octal digits)
@item \x@var{HH}
the eight-bit character whose value is the hexadecimal value @var{HH}
(one or two hex digits)
@ -3218,13 +3266,14 @@ non-zero on failure.
@item read
@btindex read
@example
read [-ers] [-a @var{aname}] [-p @var{prompt}] [-t @var{timeout}] [-n @var{nchars}] [-d @var{delim}] [@var{name} @dots{}]
read [-ers] [-a @var{aname}] [-d @var{delim}] [-n @var{nchars}] [-p @var{prompt}] [-t @var{timeout}] [-u @var{fd}] [@var{name} @dots{}]
@end example
One line is read from the standard input, and the first word
One line is read from the standard input, or from the file descriptor
@var{fd} supplied as an argument to the @option{-u} option, and the first word
is assigned to the first @var{name}, the second word to the second @var{name},
and so on, with leftover words and their intervening separators assigned
to the last @var{name}.
If there are fewer words read from the standard input than names,
If there are fewer words read from the input stream than names,
the remaining names are assigned empty values.
The characters in the value of the @env{IFS} variable
are used to split the line into words.
@ -3232,8 +3281,9 @@ The backslash character @samp{\} may be used to remove any special
meaning for the next character read and for line continuation.
If no names are supplied, the line read is assigned to the
variable @env{REPLY}.
The return code is zero, unless end-of-file is encountered or @code{read}
times out.
The return code is zero, unless end-of-file is encountered, @code{read}
times out, or an invalid file descriptor is supplied as the argument to
@option{-u}.
Options, if supplied, have the following meanings:
@table @code
@ -3275,6 +3325,9 @@ input is not read within @var{timeout} seconds.
This option has no effect if @code{read} is not reading input from the
terminal or a pipe.
@item -u @var{fd}
Read input from file descriptor @var{fd}.
@end table
@item shopt
@ -3482,7 +3535,7 @@ A synonym for @code{.} (@pxref{Bourne Shell Builtins}).
@item type
@btindex type
@example
type [-atp] [@var{name} @dots{}]
type [-afptP] [@var{name} @dots{}]
@end example
For each @var{name}, indicate how it would be interpreted if used as a
command name.
@ -3499,11 +3552,20 @@ If the @option{-p} option is used, @code{type} either returns the name
of the disk file that would be executed, or nothing if @option{-t}
would not return @samp{file}.
The @option{-P} option forces a path search for each @var{name}, even if
@option{-t} would not return @samp{file}.
If a command is hashed, @option{-p} and @option{-P} print the hashed value,
not necessarily the file that appears first in @code{$PATH}.
If the @option{-a} option is used, @code{type} returns all of the places
that contain an executable named @var{file}.
This includes aliases and functions, if and only if the @option{-p} option
is not also used.
If the @option{-f} option is used, @code{type} does not attempt to find
shell functions, as with the @code{command} builtin.
The return status is zero if any of the @var{names} are found, non-zero
if none are found.
@ -4329,7 +4391,13 @@ If the value is null, no timing information is displayed.
A trailing newline is added when the format string is displayed.
@item TMOUT
If set to a value greater than zero, the value is interpreted as
If set to a value greater than zero, @code{TMOUT} is treated as the
default timeout for the @code{read} builtin (@pxref{Bash Builtins}).
The @code{select} command (@pxref{Conditional Constructs}) terminates
if input does not arrive after @code{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
@ -4374,8 +4442,7 @@ bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @var{option}] [-O @var{shopt_optio
In addition to the single-character shell command-line options
(@pxref{The Set Builtin}), there are several multi-character
options that you can use. These options must appear on the command
line before the single-character options in order for them
to be recognized.
line before the single-character options to be recognized.
@table @code
@item --dump-po-strings
@ -4396,15 +4463,7 @@ Execute commands from @var{filename} (instead of @file{~/.bashrc})
in an interactive shell.
@item --login
Make this shell act as if it had been directly invoked by login.
When the shell is interactive, this is equivalent to starting a
login shell with @samp{exec -l bash}.
When the shell is not interactive, the login shell startup files will
be executed.
@samp{exec bash --login}
will replace the current shell with a Bash login shell.
@xref{Bash Startup Files}, for a description of the special behavior
of a login shell.
Equivalent to @option{-l}.
@item --noediting
Do not use the @sc{gnu} Readline library (@pxref{Command Line Editing})
@ -4453,6 +4512,17 @@ positional parameters, starting with @code{$0}.
Force the shell to run interactively. Interactive shells are
described in @ref{Interactive Shells}.
@item -l
Make this shell act as if it had been directly invoked by login.
When the shell is interactive, this is equivalent to starting a
login shell with @samp{exec -l bash}.
When the shell is not interactive, the login shell startup files will
be executed.
@samp{exec bash -l} or @samp{exec bash --login}
will replace the current shell with a Bash login shell.
@xref{Bash Startup Files}, for a description of the special behavior
of a login shell.
@item -r
Make the shell a restricted shell (@pxref{The Restricted Shell}).
@ -4860,14 +4930,15 @@ True if @var{file} exists and is a socket.
True if @var{file} exists and has been modified since it was last read.
@item @var{file1} -nt @var{file2}
True if @var{file1} is newer (according to
modification date) than @var{file2}.
True if @var{file1} is newer (according to modification date)
than @var{file2}, or if @var{file1} exists and @var{file2} does not.
@item @var{file1} -ot @var{file2}
True if @var{file1} is older than @var{file2}.
True if @var{file1} is older than @var{file2},
or if @var{file2} exists and @var{file1} does not.
@item @var{file1} -ef @var{file2}
True if @var{file1} and @var{file2} have the same device and
True if @var{file1} and @var{file2} refer to the same device and
inode numbers.
@item -o @var{optname}
@ -4884,7 +4955,7 @@ True if the length of @var{string} is non-zero.
@item @var{string1} == @var{string2}
True if the strings are equal.
@samp{=} may be used in place of @samp{==}.
@samp{=} may be used in place of @samp{==} for strict @sc{posix} compliance.
@item @var{string1} != @var{string2}
True if the strings are not equal.
@ -4919,7 +4990,7 @@ may be positive or negative integers.
The shell allows arithmetic expressions to be evaluated, as one of
the shell expansions or by the @code{let} builtin.
Evaluation is done in long integers with no check for overflow,
Evaluation is done in fixed-width integers with no check for overflow,
though division by 0 is trapped and flagged as an error.
The operators and their precedence and associativity are the same
as in the C language.
@ -5277,6 +5348,10 @@ can appear in the prompt variables:
A bell character.
@item \d
The date, in "Weekday Month Date" format (e.g., "Tue May 26").
@item \D@{@var{format}@}
The @var{format} is passed to @code{strftime}(3) and the result is inserted
into the prompt string; an empty @var{format} results in a locale-specific
time representation. The braces are required.
@item \e
An escape character.
@item \h
@ -5347,11 +5422,14 @@ expansion, and quote removal, subject to the value of the
If Bash is started with the name @code{rbash}, or the
@option{--restricted}
or
@option{-r}
option is supplied at invocation, the shell becomes restricted.
A restricted shell is used to
set up an environment more controlled than the standard shell.
A restricted shell behaves identically to @code{bash}
with the exception that the following are disallowed:
with the exception that the following are disallowed or not performed:
@itemize @bullet
@item
Changing directories with the @code{cd} builtin.
@ -5379,11 +5457,19 @@ Using the @code{exec} builtin to replace the shell with another command.
Adding or deleting builtin commands with the
@option{-f} and @option{-d} options to the @code{enable} builtin.
@item
Using the @code{enable} builtin command to enable disabled shell builtins.
@item
Specifying the @option{-p} option to the @code{command} builtin.
@item
Turning off restricted mode with @samp{set +r} or @samp{set +o restricted}.
@end itemize
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed
(@pxref{Shell Scripts}), @code{rbash} turns off any restrictions in
the shell spawned to execute the script.
@node Bash POSIX Mode
@section Bash POSIX Mode
@cindex POSIX Mode
@ -5393,6 +5479,9 @@ Starting Bash with the @option{--posix} command-line option or executing
closely to the @sc{posix} 1003.2 standard by changing the behavior to
match that specified by @sc{posix} in areas where the Bash default differs.
When invoked as @code{sh}, Bash enters @sc{posix} mode after reading the
startup files.
The following list is what's changed when `@sc{posix} mode' is in effect:
@enumerate
@ -5538,6 +5627,12 @@ shell function names and definitions.
When the @code{set} builtin is invoked without options, it displays
variable values without quotes, unless they contain shell metacharacters,
even if the result contains nonprinting characters.
@item
When the @code{cd} builtin is invoked in @var{logical} mode, and the pathname
constructed from @code{$PWD} and the directory name supplied as an argument
does not refer to an existing directory, @code{cd} will fail instead of
falling back to @var{physical} mode.
@end enumerate
There is other @sc{posix} 1003.2 behavior that Bash does not implement.
@ -6129,7 +6224,7 @@ A synonym for @code{--with-bash-malloc}.
@item --with-installed-readline[=@var{PREFIX}]
Define this to make Bash link with a locally-installed version of Readline
rather than the version in @file{lib/readline}. This works only with
Readline 4.2 and later versions. If @var{PREFIX} is @code{yes} or not
Readline 4.3 and later versions. If @var{PREFIX} is @code{yes} or not
supplied, @code{configure} uses the values of the make variables
@code{includedir} and @code{libdir}, which are subdirectories of @code{prefix}
by default, to find the installed version of Readline if it is not in
@ -6158,7 +6253,8 @@ compiled and linked, rather than changing run-time features.
@item --enable-largefile
Enable support for @uref{http://www.sas.com/standards/large_file/x_open.20Mar96.html,
large files} if the operating system requires special compiler options
to build programs which can access large files.
to build programs which can access large files. This is enabled by
default, if the operating system provides large file support.
@item --enable-profiling
This builds a Bash binary that produces profiling information to be
@ -6628,7 +6724,8 @@ The @code{trap} builtin (@pxref{Bourne Shell Builtins}) allows a
@code{DEBUG} pseudo-signal specification, similar to @code{EXIT}.
Commands specified with a @code{DEBUG} trap are executed after every
simple command.
The @code{DEBUG} trap is not inherited by shell functions.
The @code{DEBUG} trap is not inherited by shell functions unless the
function has been given the @code{trace} attribute.
The @code{trap} builtin (@pxref{Bourne Shell Builtins}) allows an
@code{ERR} pseudo-signal specification, similar to @code{EXIT} and @code{DEBUG}.

View file

@ -1,14 +1,13 @@
.\" This is a hack to force bash builtins into the whatis database
.\" and to get the list of builtins to come up with the man command.
.TH BASH_BUILTINS 1 "2001 October 29" "GNU Bash-2.05a"
.TH BASH_BUILTINS 1 "2001 November 27" "GNU Bash-2.05a"
.SH NAME
bash, :, ., [, alias, bg, bind, break, builtin, case, cd, command, compgen,
complete,
bash, :, ., [, alias, bg, bind, break, builtin, cd, command, compgen, complete,
continue, declare, dirs, disown, echo, enable, eval, exec, exit,
export, fc, fg, for, getopts, hash, help, history, if, jobs, kill,
export, fc, fg, getopts, hash, help, history, jobs, kill,
let, local, logout, popd, printf, pushd, pwd, read, readonly, return, set,
shift, shopt, source, suspend, test, times, trap, type, typeset,
ulimit, umask, unalias, unset, until, wait, while \- bash built-in commands, see \fBbash\fR(1)
ulimit, umask, unalias, unset, wait \- bash built-in commands, see \fBbash\fR(1)
.SH BASH BUILTIN COMMANDS
.nr zZ 1
.so bash.1