Imported from ../bash-2.0.tar.gz.

This commit is contained in:
Jari Aalto
2009-09-12 16:46:49 +00:00
parent 726f63884d
commit ccc6cda312
502 changed files with 91975 additions and 69110 deletions
+1098
View File
File diff suppressed because it is too large Load Diff
+187
View File
@@ -0,0 +1,187 @@
BASH - The Bourne-Again Shell
Bash is the shell, or command language interpreter, that will appear
in the GNU operating system. Bash is an sh-compatible shell that
incorporates useful features from the Korn shell (ksh) and C shell
(csh). It is intended to conform to the IEEE POSIX P1003.2/ISO 9945.2
Shell and Tools standard. It offers functional improvements over sh
for both programming and interactive use. In addition, most sh scripts
can be run by Bash without modification.
Bash is quite portable. It uses a configuration system that discovers
characteristics of the compilation platform at build time, and may
therefore be built on nearly every version of UNIX. Ports to
UNIX-like systems such as QNX and Minix and to non-UNIX systems such
as OS/2, Windows 95, and Windows NT are available.
Bash includes the following features:
Editing and Completion
Bash offers a command-line editing facility which permits users to
edit command lines using familiar emacs or vi-style editing commands.
Editing allows corrections to be made without having to erase back
to the point of error or start the command line anew. The editing
facilities include a feature that allows users to complete command and
file names.
The Bash line editing library is fully customizable. Users may define
their own key bindings -- the action taken when a key is pressed. A
number of variables to fine-tune editing behavior are also available.
History and Command Re-entry
The Bash history feature remembers commands entered to the shell and
allows them to be recalled and re-executed. The history list may be
of unlimited size. Bash allows users to search for previous commands
and reuse portions of those commands when composing new ones. The
history list may be saved across shell sessions.
Bash allows users to control which commands are saved on the history
list.
Job Control
On systems that support it, Bash provides an interface to the
operating system's job control facilities, which allow processes
to be suspended and restarted, and moved between the foreground
and background. Bash allows users to selectively `forget' about
background jobs.
Shell Functions and Aliases
These mechanisms are available to bind a user-selected identifier to a
list of commands that will be executed when the identifier is used as
a command name. Functions allow local variables and recursion, and
have access to the environment of the calling shell. Aliases may be
used to create a mnemonic for a command name, expand a single word to
a complex command, or ensure that a command is called with a basic set
of options.
Arrays
Bash-2.0 supports indexed arrays of unlimited size. The subscript for
an array is an arithmetic expression. Arrays may be assigned to with
a new compound assignment syntax, and several builtins have options to
operate on array variables. Bash includes a number of built-in array
variables.
Arithmetic
Bash allows users to perform integer arithmetic in any base from two
to sixty-four. Nearly all of the C language arithmetic operators are
available with the same syntax and precedence as in C. Arithmetic
expansion allows an arithmetic expression to be evaluated and the
result substituted into the command line. Shell variables can be used
as operands, and the value of an expression may be assigned to a
variable.
An arithmetic expression may be used as a command; the exit status of
the command is the value of the expression.
ANSI-C Quoting
There is a new quoting syntax that allows backslash-escaped characters
in strings to be expanded according to the ANSI C standard.
Tilde Expansion
Users' home directories may be expanded using this feature. Words
beginning with a tilde may also be expanded to the current or previous
working directory.
Brace Expansion
Brace expansion is a convenient way to generate a list of strings that
share a common prefix or suffix.
Substring Capabilities
Bash allows new strings to be created by removing leading or trailing
substrings from existing variable values, or by specifying a starting
offset and length. Portions of variable values may be matched against
shell patterns and the matching portion removed or a new value
substituted.
Indirect Variable Expansion
Bash makes it easy to find the value of a shell variable whose name is
the value of another variable.
Expanded I/O Capabilities
Bash provides several input and output features not available in sh,
including the ability to:
o specify a file or file descriptor for both input and output
o read from or write to asynchronous processes using named pipes
o read lines ending in backslash
o display a prompt on the terminal before a read
o format menus and interpret responses to them
o echo lines exactly as input without escape processing
Control of Builtin Commands
Bash implements several builtin commands to give users more control
over which commands are executed. The enable builtin allows other
builtin commands to be selectively enabled or disabled. The command
and builtin builtins change the order in which the shell searches for
commands.
On systems that provide dynamic loading, new builtins may be loaded
into a running shell from a shared object file. These new builtins
have access to all of the shell facilities.
Help
Bash includes a built-in help factility.
Shell Optional Behavior
There is a great deal of customizable shell behavior. The shopt
builtin command provides a unified interface that allows users to
alter shell defaults.
Prompt Customization
Bash allows the primary and secondary prompts to be customized by
interpreting a number of backslash-escaped special characters.
Parameter and variable expansion is also performed on the values of
the primary and secondary prompt strings before they are displayed.
Security
Bash provides a restricted shell environment. It is also possible to
control the execution of setuid/setgid scripts.
Directory Stack
Bash provides a `directory stack', to which directories may be added
and removed. The current directory may be changed to any directory in
the stack. It is easy to toggle between two directories in the stack.
The directory stack may be saved and restored across different shell
invocations.
POSIX Mode
Bash is nearly completely conformant to POSIX.2. POSIX mode changes
those few areas where the Bash default behavior differs from the
standard to match the standard. In POSIX mode, Bash is POSIX.2
compliant.
Internationalization
Bash provides a new quoting syntax that allows strings to be
translated according to the current locale. The locale in which the
shell itself runs may also be changed, so that the shell messages
themselves may be language-specific.
The command-line editing facilities allow the input of eight-bit
characters, so most of the ISO-8859 family of character sets are
supported.
Command Timing
Bash allows external commands, shell builtin commands and shell functions
to be timed. The format used to display the timing information may be
changed by the user.
+169
View File
@@ -0,0 +1,169 @@
# This Makefile is for the Bash/documentation directory -*- text -*-.
#
RM = rm -f
topdir = @top_srcdir@
srcdir = @srcdir@
VPATH = .:@srcdir@
infodir = @infodir@
mandir = @mandir@
manpfx = man
man1ext = 1
man1dir = $(mandir)/$(manpfx)$(man1ext)
man3ext = 3
man3dir = $(mandir)/$(manpfx)$(man3ext)
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
BUILD_DIR = @BUILD_DIR@
# bad style
RL_LIBDIR = $(topdir)/lib/readline
# unused
TEXINDEX = texindex
TEX = tex
MAKEINFO = makeinfo
TEXI2DVI = ${topdir}/support/texi2dvi
TEXI2HTML = ${topdir}/support/texi2html
QUIETPS = #set this to -q to shut up dvips
DVIPS = dvips -D 300 $(QUIETPS) -o $@ # tricky
TEXINPUTDIR = $(RL_LIBDIR)/doc
MKDIRS = ${topdir}/support/mkdirs
# This should be a program that converts troff to an ascii-readable format
NROFF = groff -Tascii
# This should be a program that converts troff to postscript
GROFF = groff
HSUSER = $(RL_LIBDIR)/doc/hsuser.texinfo
RLUSER = $(RL_LIBDIR)/doc/rluser.texinfo
.SUFFIXES: .0 .1 .3 .ms .ps .txt .dvi
.1.ps:
$(RM) $@
-${GROFF} -man $< > $@
.1.0:
$(RM) $@
-${NROFF} -man $< > $@
.ms.ps:
$(RM) $@
-${GROFF} -ms $< > $@
.ms.txt:
$(RM) $@
-${NROFF} -ms $< > $@
.3.ps:
$(RM) $@
-${GROFF} -man $< > $@
.3.0:
$(RM) $@
-${NROFF} -man $< > $@
all: ps info dvi text html
nodvi: ps info text html
ps: bash.ps bashbug.ps readline.ps article.ps builtins.ps
dvi: bashref.dvi bashref.ps
info: bashref.info
text: bash.0 bashbug.0 builtins.0 readline.0
html: bashref.html
bashref.dvi: $(srcdir)/bashref.texi $(HSUSER) $(RLUSER)
TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/bashref.texi
bashref.ps: bashref.dvi
$(RM) $@
$(DVIPS) bashref.dvi
bashref.info: $(srcdir)/bashref.texi $(HSUSER) $(RLUSER)
$(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi
bashref.html: bashref.texi $(HSUSER) $(RLUSER)
$(TEXI2HTML) -I $(TEXINPUTDIR) $(srcdir)/bashref.texi
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
bashbug.ps: bashbug.1
builtins.ps: builtins.1 bash.1
bash.0: bash.1
bashbug.0: bashbug.1
builtins.0: builtins.1 bash.1
readline.0: readline.3
readline.ps: readline.3
article.ps: article.ms
faq: faq.news faq.news2 faq.mail faq.version
faq.version: FAQ.version FAQ
sh mkfaqvers FAQ.version > $@
faq.news: FAQ FAQ.headers.news faq.version
$(RM) $@
cat FAQ.headers.news faq.version FAQ > $@
faq.news2: FAQ FAQ.headers.news2 faq.version
$(RM) $@
cat FAQ.headers.news2 faq.version FAQ > $@
faq.mail: FAQ FAQ.headers.mail faq.version
$(RM) $@
cat FAQ.headers.mail faq.version FAQ > $@
clean:
$(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps \
*.pgs *.bt *.bts *.rw *.rws *.fns *.kys *.tps *.vrs *.o \
core rluser.texinfo hsuser.texinfo
distclean mostlyclean: clean
$(RM) Makefile
maintainer-clean: clean
$(RM) *.0 *.ps *.dvi *.info *.txt
$(RM) Makefile
installdirs:
-test -d $(man1dir) || $(SHELL) ${MKDIRS} $(man1dir)
-test -d $(man3dir) || $(SHELL) ${MKDIRS} $(man3dir)
-test -d $(infodir) || $(SHELL) ${MKDIRS} $(infodir)
install: info installdirs
-$(INSTALL_DATA) $(srcdir)/bash.1 $(man1dir)/bash.${man1ext}
-$(INSTALL_DATA) $(srcdir)/bashbug.1 $(man1dir)/bashbug.${man1ext}
-$(INSTALL_DATA) $(srcdir)/readline.3 $(man3dir)/readline.${man3ext}
-$(INSTALL_DATA) $(srcdir)/bashref.info $(infodir)/bash.info
# uncomment the next line to install the builtins man page
# $(INSTALL_DATA) builtins.1 $(man1dir)/bash_builtins.${man1ext}
uninstall:
$(RM) $(man1dir)/bash.${man1ext} $(man1dir)/bashbug.${man1ext}
$(RM) $(man3dir)/readline.${man3ext} $(infodir)/bash.info
# for use by chet
inst: bashref.texi
$(SHELL) ./mkinstall
cmp -s INSTALL ../INSTALL || mv INSTALL ../INSTALL
$(RM) INSTALL
posix: bashref.texi
$(SHELL) ./mkposix
cmp -s POSIX.NOTES ../CWRU/POSIX.NOTES || mv POSIX.NOTES ../CWRU/POSIX.NOTES
$(RM) POSIX.NOTES
+35
View File
@@ -0,0 +1,35 @@
This directory contains the bash documentation.
FAQ - a set of frequently-asked questions about Bash with answers
article.ms - an article I wrote about bash for The Linux Journal
bash.1 - the bash man page
builtins.1 - a man page that documents the builtins, extracted from bash.1
features.texi - the `bash reference manual'
features.info - the `bash reference manual' processed by `makeinfo'
readline.3 - the readline man page
The `.ps' files are postscript versions of the above. The `.html'
files are HTML versions of the man page and reference manual. The
`.0' files are formatted manual pages. The `.txt' versions are
ascii -- the output of `groff -Tascii'.
The rest of this file explains how to use the `builtins.1' man page.
For each command in the list of builtins create a file in man/man1 called:
${command}.1
eg.
for.1
type.1
alias.1
etc.
All these files are identical as follows:
jaws@jaws(264)$ cat alias.1
.so man1/builtins.1
jaws@jaws(265)$
Make sure you adjust the .so line in builtins.1 to reflect where you
put it.
+1114
View File
File diff suppressed because it is too large Load Diff
+6785
View File
File diff suppressed because it is too large Load Diff
+41
View File
@@ -0,0 +1,41 @@
.TH BASHBUG 1 "1995 August 10" GNU
.SH NAME
bashbug \- report a bug in bash
.SH SYNOPSIS
\fBbashbug\fP [\fIaddress\fP]
.SH DESCRIPTION
.B bashbug
is a shell script to help the user compose and mail bug reports
concerning bash in a standard format.
.B bashbug
invokes the editor specified by the environment variable
.SM
.B EDITOR
on a temporary copy of the bug report format outline. The user must
fill in the appropriate fields and exit the editor.
.B bashbug
then mails the completed report to \fIbug-bash@prep.ai.mit.edu\fP, or
\fIaddress\fP. If the report cannot be mailed, it is saved in the
file \fIdead.bashbug\fP in the invoking user's home directory.
.PP
The bug report format outline consists of several sections. The first
section provides information about the machine, operating system, the
bash version, and the compilation environment. The second section
should be filled in with a description of the bug. The third section
should be a description of how to reproduce the bug. The optional
fourth section is for a proposed fix. Fixes are encouraged.
.SH ENVIRONMENT
.B bashbug
will utilize the following environment variables if they exist:
.TP
.B EDITOR
Specifies the preferred editor. If
.SM
.B EDITOR
is not set,
.B bashbug
defaults to
.BR emacs .
.TP
.B HOME
Directory in which the failed bug report is saved if the mail fails.
+6513
View File
File diff suppressed because it is too large Load Diff
+5331
View File
File diff suppressed because it is too large Load Diff
+15
View File
@@ -0,0 +1,15 @@
.\" 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 "1996 March 20" GNU
.SH NAME
bash, :, ., alias, bg, bind, break, builtin, case, cd, command,
continue, declare, dirs, disown, echo, enable, eval, exec, exit,
export, fc, fg, for, getopts, hash, help, history, if, jobs, kill,
let, local, logout, popd, 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)
.SH BASH BUILTIN COMMANDS
.nr zZ 1
.so bash.1
.SH SEE ALSO
bash(1), sh(1)
+1103
View File
File diff suppressed because it is too large Load Diff
+4421
View File
File diff suppressed because it is too large Load Diff