mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-07-20 02:12:51 +02:00
Imported from ../bash-2.0.tar.gz.
This commit is contained in:
@@ -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
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+6785
File diff suppressed because it is too large
Load Diff
@@ -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
File diff suppressed because it is too large
Load Diff
+5331
File diff suppressed because it is too large
Load Diff
@@ -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
File diff suppressed because it is too large
Load Diff
+4421
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user