next set of documentation updates (job control); fix read timeout problem; fix bash-source-fullpath default; brace expansion integer overflow fix; fix for help output for loadable builtins

This commit is contained in:
Chet Ramey
2024-10-15 10:02:17 -04:00
parent 5edfaa45e7
commit 3ed028ccec
37 changed files with 4847 additions and 4331 deletions
+51
View File
@@ -10307,5 +10307,56 @@ lib/readline/doc/hsuser.texi,lib/readline/doc/history.3
- next set of updates for consistency between formats, update language,
fix formatting conventions
10/11
-----
lib/readline/doc/rltech.texi,lib/readline/doc/hstech.texi
- next set of updates for consistency between formats, update language,
fix formatting conventions
10/12
-----
Makefile.in,builtins/Makefile.in
- update dependencies on readline, history include files
builtins/shopt.def
- update bash_source_fullpath reset to use new default
configure.ac
- update to use the right option name for bash-source-fullpath-default
Report and patch from Grisha Levit <grishalevit@gmail.com>
braces.c
- mkseq: fix loop condition to avoid integer overflow
Report and patch from Grisha Levit <grishalevit@gmail.com>
builtins/help.def
- show_desc: don't assume that long_doc[0] ends with a newline,
just add one manually when we hit a newline or NULL
Report and patch from Grisha Levit <grishalevit@gmail.com>
builtins/read.def
- read_builtin: don't check the timeout after breaking out of the
character read loop unless we didn't read anything (i == 0) and
the last read return EOF or error
- read_builtin: move check_read_timeout call to the end of the read
loop, after we check for the delimiter and whether or not we've
read the right number of characters, so we always return any
valid data
Report from Thomas Oettli <thomas.oettli@sfs.com>
10/14
-----
jobs.c
- wait_for_any_job: in posix mode, take any terminated pid from bgpids
before waiting for a running job to terminate
Inspired by report from Zachary Santer <zsanter@gmail.com>
10/14
-----
doc/bash.1,doc/bashref.texi
- next set of updates for consistency between formats, update language,
fix formatting conventions (job control section)
doc/bash.1,doc/bashref.texi,lib/readline/doc/readline.3,lib/readline/doc/rluser.texi
- minor wording updates and typo fixes from
G. Branden Robinson <g.branden.robinson@gmail.com>
+15 -4
View File
@@ -330,6 +330,8 @@ HISTORY_LIBRARY = $(HIST_LIBDIR)/libhistory.a
HISTORY_LDFLAGS = -L$(HIST_LIBDIR)
HISTORY_DEP = @HISTORY_DEP@
HIST_INCLUDEDIR = @HIST_INCLUDEDIR@
# The source, object and documentation of the history library.
HISTORY_SOURCE = $(HIST_LIBSRC)/history.c $(HIST_LIBSRC)/histexpand.c \
$(HIST_LIBSRC)/histsearch.c $(HIST_LIBSRC)/histfile.c \
@@ -1242,7 +1244,7 @@ shell.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h arr
shell.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
shell.o: make_cmd.h subst.h sig.h pathnames.h externs.h parser.h
shell.o: flags.h trap.h mailcheck.h builtins.h $(DEFSRC)/common.h
shell.o: jobs.h siglist.h input.h execute_cmd.h findcmd.h bashhist.h bashline.h
shell.o: jobs.h siglist.h input.h execute_cmd.h findcmd.h bashhist.h bashline.h
shell.o: ${GLOB_LIBSRC}/strmatch.h ${BASHINCDIR}/posixtime.h ${BASHINCDIR}/posixwait.h
shell.o: ${BASHINCDIR}/ocache.h ${BASHINCDIR}/chartypes.h assoc.h alias.h
shell.o: $(BASHINCDIR)/unlocked-io.h
@@ -1457,13 +1459,18 @@ pcomplete.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
pcomplete.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
pcomplete.o: $(RL_LIBSRC)/rltypedefs.h ${RL_LIBSRC}/rlmbutil.h
shell.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
bashhist.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
bashline.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
bracecomp.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
error.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
eval.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
execute_cmd.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
flags.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
variables.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
subst.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
bashline.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
bashhist.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
y.tab.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
pcomplete.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
shell.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
bashline.o: $(TILDE_LIBSRC)/tilde.h
bracecomp.o: $(TILDE_LIBSRC)/tilde.h
@@ -1815,9 +1822,13 @@ builtins/umask.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
builtins/bind.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
builtins/bind.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
builtins/common.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
builtins/evalfile.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
builtins/evalstring.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
builtins/bind.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
builtins/fc.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
builtins/history.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
builtins/shopt.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
builtins/common.o: $(TILDE_LIBSRC)/tilde.h
builtins/cd.o: $(TILDE_LIBSRC)/tilde.h
+4 -1
View File
@@ -444,9 +444,12 @@ mkseq (intmax_t start, intmax_t end, intmax_t incr, int type, size_t width)
return ((char **)NULL);
}
if (i >= nelem - 1)
break;
n += incr;
}
while (i < nelem - 1);
while (1);
result[i] = (char *)0;
return (result);
+31 -1
View File
@@ -77,6 +77,9 @@ BASHINCDIR = ${topdir}/include
RL_INCLUDEDIR = @RL_INCLUDEDIR@
HIST_LIBSRC = ${topdir}/lib/readline
RL_LIBSRC = ${topdir}/lib/readline
INTL_LIBSRC = ${topdir}/lib/intl
INTL_BUILDDIR = ${LIBBUILD}/intl
INTL_LIBDIR = ${INTL_BUILDDIR}
@@ -683,7 +686,34 @@ mapfile.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h
mapfile.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/variables.h $(topdir)/conftypes.h
mapfile.o: $(topdir)/arrayfunc.h ../pathnames.h
#bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h
bind.o: $(RL_LIBSRC)/rlconf.h
bind.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
bind.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
bind.o: $(RL_LIBSRC)/rltypedefs.h ${RL_LIBSRC}/rlmbutil.h
complete.o: $(RL_LIBSRC)/rlconf.h
complete.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
complete.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
complete.o: $(RL_LIBSRC)/rltypedefs.h ${RL_LIBSRC}/rlmbutil.h
history.o: $(RL_LIBSRC)/rlconf.h
history.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
history.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
history.o: $(RL_LIBSRC)/rltypedefs.h ${RL_LIBSRC}/rlmbutil.h
read.o: $(RL_LIBSRC)/rlconf.h
read.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
read.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
read.o: $(RL_LIBSRC)/rltypedefs.h ${RL_LIBSRC}/rlmbutil.h
set.o: $(RL_LIBSRC)/rlconf.h
set.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
set.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
set.o: $(RL_LIBSRC)/rltypedefs.h ${RL_LIBSRC}/rlmbutil.h
common.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
evalfile.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
evalstring.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
bind.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
fc.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
history.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
shopt.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
# libintl dependencies
bind.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+4 -6
View File
@@ -265,12 +265,10 @@ show_desc (char *name, int i)
line = doc ? doc[0] : (char *)NULL;
printf ("%s - ", name);
for (j = 0; line && line[j]; j++)
{
putchar (line[j]);
if (line[j] == '\n')
break;
}
/* Don't assume LINE ends with a newline. */
for (j = 0; line && line[j] && line[j] != '\n'; j++)
putchar (line[j]);
putchar ('\n');
fflush (stdout);
+6 -2
View File
@@ -843,7 +843,6 @@ read_builtin (WORD_LIST *list)
add_char:
input_string[i++] = c;
check_read_timeout ();
#if defined (HANDLE_MULTIBYTE)
/* XXX - what if C == 127? Can DEL introduce a multibyte sequence? */
@@ -878,6 +877,8 @@ add_char:
if (nchars > 0 && nr >= nchars)
break;
check_read_timeout ();
}
/* Back up over trailing CTLESC if the input ends with an unescaped
backslash */
@@ -891,7 +892,10 @@ add_char:
saw_escape = 0; /* Avoid dequoting bare CTLNUL */
input_string[i] = '\0';
check_read_timeout ();
/* Don't check the timeout unless we didn't read anything and zread returned
EOF or error. */
if (i == 0 && retval <= 0)
check_read_timeout ();
#if defined (READLINE)
if (edit)
+1 -1
View File
@@ -376,10 +376,10 @@ reset_shopt_options (void)
glob_ignore_case = match_ignore_case = 0;
print_shift_error = 0;
source_uses_path = promptvars = 1;
bash_source_fullpath = 0;
varassign_redir_autoclose = 0;
singlequote_translations = 0;
patsub_replacement = PATSUB_REPLACE_DEFAULT;
bash_source_fullpath = BASH_SOURCE_FULLPATH_DEFAULT;
#if defined (JOB_CONTROL)
check_jobs_at_exit = 0;
Vendored
+19 -11
View File
@@ -1,5 +1,5 @@
#! /bin/sh
# From configure.ac for Bash 5.3, version 5.069.
# From configure.ac for Bash 5.3, version 5.071.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72 for bash 5.3-beta.
#
@@ -748,6 +748,7 @@ INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
TILDE_LIB
HIST_INCLUDEDIR
HIST_LIBDIR
HISTORY_DEP
HISTORY_LIB
@@ -3458,7 +3459,7 @@ opt_function_import=yes
opt_dev_fd_stat_broken=no
opt_alt_array_impl=no
opt_translatable_strings=yes
opt_bash_source_fullpath=no
opt_bash_source_fullpath_default=no
ARRAY_O=array.o
@@ -3484,7 +3485,7 @@ if test $opt_minimal_config = yes; then
opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no
opt_translatable_strings=no
opt_globascii_default=yes
opt_bash_source_fullpath=no
opt_bash_source_fullpath_default=no
fi
# Check whether --enable-alias was given.
@@ -5950,6 +5951,8 @@ if test $opt_readline = yes; then
else
RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
READLINE_DEP='$(READLINE_LIBRARY)'
# for dependencies
RL_INCLUDEDIR='$(RL_LIBDIR)'
# section for OS versions that ship an older/broken version of
# readline as a standard dynamic library and don't allow a
# static version specified as -llibname to override the
@@ -5962,6 +5965,7 @@ if test $opt_readline = yes; then
else
RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
READLINE_LIB= READLINE_DEP=
RL_INCLUDEDIR=
fi
if test $opt_history = yes || test $opt_bang_history = yes; then
if test $opt_history = yes; then
@@ -5987,6 +5991,8 @@ if test $opt_history = yes || test $opt_bang_history = yes; then
else
HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
HISTORY_DEP='$(HISTORY_LIBRARY)'
# for dependencies
HIST_INCLUDEDIR='$(HIST_LIBDIR)'
# section for OS versions that ship an older version of
# readline as a standard dynamic library and don't allow a
# static version specified as -llibname to override the
@@ -5999,6 +6005,7 @@ if test $opt_history = yes || test $opt_bang_history = yes; then
else
HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
HISTORY_LIB= HISTORY_DEP=
HIST_INCLUDEDIR=
fi
@@ -6012,6 +6019,7 @@ fi
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
@@ -9218,8 +9226,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
LIBS=$save_LIBS
test $gl_pthread_api = yes && break
done
echo "$as_me:9221: gl_pthread_api=$gl_pthread_api" >&5
echo "$as_me:9222: LIBPTHREAD=$LIBPTHREAD" >&5
echo "$as_me:9229: gl_pthread_api=$gl_pthread_api" >&5
echo "$as_me:9230: LIBPTHREAD=$LIBPTHREAD" >&5
gl_pthread_in_glibc=no
# On Linux with glibc >= 2.34, libc contains the fully functional
@@ -9245,7 +9253,7 @@ rm -rf conftest*
;;
esac
echo "$as_me:9248: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
echo "$as_me:9256: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
# Test for libpthread by looking for pthread_kill. (Not pthread_self,
# since it is defined as a macro on OSF/1.)
@@ -9423,7 +9431,7 @@ fi
fi
fi
echo "$as_me:9426: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
echo "$as_me:9434: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
printf %s "checking whether POSIX threads API is available... " >&6; }
@@ -9670,8 +9678,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
LIBS=$save_LIBS
test $gl_pthread_api = yes && break
done
echo "$as_me:9673: gl_pthread_api=$gl_pthread_api" >&5
echo "$as_me:9674: LIBPTHREAD=$LIBPTHREAD" >&5
echo "$as_me:9681: gl_pthread_api=$gl_pthread_api" >&5
echo "$as_me:9682: LIBPTHREAD=$LIBPTHREAD" >&5
gl_pthread_in_glibc=no
# On Linux with glibc >= 2.34, libc contains the fully functional
@@ -9697,7 +9705,7 @@ rm -rf conftest*
;;
esac
echo "$as_me:9700: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
echo "$as_me:9708: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
# Test for libpthread by looking for pthread_kill. (Not pthread_self,
# since it is defined as a macro on OSF/1.)
@@ -9875,7 +9883,7 @@ fi
fi
fi
echo "$as_me:9878: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
echo "$as_me:9886: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
printf %s "checking whether POSIX threads API is available... " >&6; }
+10 -3
View File
@@ -21,7 +21,7 @@ dnl Process this file with autoconf to produce a configure script.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC_REVISION([for Bash 5.3, version 5.069])dnl
AC_REVISION([for Bash 5.3, version 5.071])dnl
define(bashvers, 5.3)
define(relstatus, beta)
@@ -186,7 +186,7 @@ opt_function_import=yes
opt_dev_fd_stat_broken=no
opt_alt_array_impl=no
opt_translatable_strings=yes
opt_bash_source_fullpath=no
opt_bash_source_fullpath_default=no
dnl modified by alternate array implementation option
ARRAY_O=array.o
@@ -212,7 +212,7 @@ if test $opt_minimal_config = yes; then
opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no
opt_translatable_strings=no
opt_globascii_default=yes
opt_bash_source_fullpath=no
opt_bash_source_fullpath_default=no
fi
AC_ARG_ENABLE(alias, AS_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
@@ -622,6 +622,8 @@ if test $opt_readline = yes; then
else
RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
READLINE_DEP='$(READLINE_LIBRARY)'
# for dependencies
RL_INCLUDEDIR='$(RL_LIBDIR)'
# section for OS versions that ship an older/broken version of
# readline as a standard dynamic library and don't allow a
# static version specified as -llibname to override the
@@ -634,6 +636,7 @@ if test $opt_readline = yes; then
else
RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
READLINE_LIB= READLINE_DEP=
RL_INCLUDEDIR=
fi
if test $opt_history = yes || test $opt_bang_history = yes; then
if test $opt_history = yes; then
@@ -657,6 +660,8 @@ if test $opt_history = yes || test $opt_bang_history = yes; then
else
HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
HISTORY_DEP='$(HISTORY_LIBRARY)'
# for dependencies
HIST_INCLUDEDIR='$(HIST_LIBDIR)'
# section for OS versions that ship an older version of
# readline as a standard dynamic library and don't allow a
# static version specified as -llibname to override the
@@ -669,6 +674,7 @@ if test $opt_history = yes || test $opt_bang_history = yes; then
else
HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
HISTORY_LIB= HISTORY_DEP=
HIST_INCLUDEDIR=
fi
AC_SUBST(READLINE_LIB)
AC_SUBST(READLINE_DEP)
@@ -678,6 +684,7 @@ AC_SUBST(RL_INCLUDE)
AC_SUBST(HISTORY_LIB)
AC_SUBST(HISTORY_DEP)
AC_SUBST(HIST_LIBDIR)
AC_SUBST(HIST_INCLUDEDIR)
AC_SUBST(TILDE_LIB)
dnl END READLINE and HISTORY LIBRARY SECTION
+1194 -1167
View File
File diff suppressed because it is too large Load Diff
+177 -127
View File
@@ -5,14 +5,14 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Thu Oct 10 16:33:40 EDT 2024
.\" Last Change: Mon Oct 14 11:41:21 EDT 2024
.\"
.\" bash_builtins, strip all but Built-Ins section
.\" avoid a warning about an undefined register
.\" .if !rzY .nr zY 0
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2024 October 10" "GNU Bash 5.3"
.TH BASH 1 "2024 October 14" "GNU Bash 5.3"
.\"
.ie \n(.g \{\
.ds ' \(aq
@@ -498,7 +498,7 @@ One of the following:
.if n \fB| & ; ( ) < > space tab newline\fP
.RE
.TP
.B control operator
.B "control operator"
A \fItoken\fP that performs a control function.
It is one of the following symbols:
.RS
@@ -616,7 +616,7 @@ is executed in a \fIsubshell\fP, which is a
separate process.
See
.SM
\fBCOMMAND EXECUTION ENVIRONMENT\fP
.B "COMMAND EXECUTION ENVIRONMENT"
for a description of subshells and a subshell environment.
If the \fBlastpipe\fP option is enabled using the \fBshopt\fP builtin
(see the description of \fBshopt\fP below),
@@ -698,7 +698,7 @@ newline in place of a semicolon.
(\fIlist\fP)
\fIlist\fP is executed in a subshell (see
.SM
\fBCOMMAND EXECUTION ENVIRONMENT\fP
.B "COMMAND EXECUTION ENVIRONMENT"
below for a description of a subshell environment).
Variable assignments and builtin
commands that affect the shell's environment do not remain in effect
@@ -932,7 +932,7 @@ it against each \fIpattern\fP in turn,
proceeding from first to last,
using the matching rules
described under
.B Pattern Matching
.B "Pattern Matching"
below.
A pattern list is a set of one or more patterns separated by \|,
and the ) operator terminates the pattern list.
@@ -1140,7 +1140,7 @@ represent itself.
When the command history expansion facilities are being used
(see
.SM
.B HISTORY EXPANSION
.B "HISTORY EXPANSION"
below), the
\fIhistory expansion\fP character, usually \fB!\fP, must be quoted
to prevent history expansion.
@@ -2710,7 +2710,7 @@ The search path for commands.
It is a colon-separated list of directories in which
the shell looks for commands (see
.SM
.B COMMAND EXECUTION
.B "COMMAND EXECUTION"
below).
A zero-length (null) directory name in the value of
.SM
@@ -2781,7 +2781,7 @@ The value of this parameter is used as the prompt for the
.B select
command (see
.SM
.B SHELL GRAMMAR
.B "SHELL GRAMMAR"
above).
.TP
.B PS4
@@ -2877,38 +2877,41 @@ If set, \fBbash\fP uses its value as the name of a directory in which
.B auto_resume
This variable controls how the shell interacts with the user and
job control.
If this variable is set, single-word simple
commands without redirections are treated as candidates for resumption
If this variable is set, simple commands
consisting of only a single word,
without redirections, are treated as candidates for resumption
of an existing stopped job.
There is no ambiguity allowed; if there is more than one job
beginning with the string typed, the most recently accessed job
is selected.
beginning with or containing
the word, this selects the most recently accessed job.
The
.I name
of a stopped job, in this context, is the command line used to
start it.
start it, as displayed by \fBjobs\fP.
If set to the value
.IR exact ,
the string supplied must match the name of a stopped job exactly;
the word must match the name of a stopped job exactly;
if set to
.IR substring ,
the string supplied needs to match a substring of the name of a
stopped job. The
the word needs to match a substring of the name of a stopped job.
The
.I substring
value provides functionality analogous to the
.B %?
job identifier (see
.SM
.B JOB CONTROL
below). If set to any other value, the supplied string must
be a prefix of a stopped job's name; this provides functionality
analogous to the \fB%\fP\fIstring\fP job identifier.
.B "JOB CONTROL"
below).
If set to any other value (e.g.,
.IR prefix ),
the word must be a prefix of a stopped job's name;
this provides functionality analogous to the \fB%\fP\fIstring\fP job identifier.
.TP
.B histchars
The two or three characters which control history expansion
and tokenization (see
.SM
.B HISTORY EXPANSION
.B "HISTORY EXPANSION"
below).
The first character is the \fIhistory expansion\fP character,
the character which signals the start of a history
@@ -3043,7 +3046,7 @@ part of the
expansion of the original word.
This is analogous to the expansion
of the special parameters \fB*\fP and \fB@\fP (see
.B Special Parameters
.B "Special Parameters"
above).
.PP
${#\fIname\fP[\fIsubscript\fP]} expands to the length of
@@ -3326,8 +3329,8 @@ number without a leading
.Q +
or
.Q \- ,
.Q +
is assumed.
tilde expansion assumes
.Q + .
.PP
The results of tilde expansion are treated as if they were quoted, so
the replacement is not subject to word splitting and pathname expansion.
@@ -3447,10 +3450,11 @@ ${\fIparameter\fP\fB:?\fP\fIword\fP}
\fBDisplay Error if Null or Unset\fP.
If
.I parameter
is null or unset, the expansion of \fIword\fP (or a message to that effect
is null or unset, the shell writes
the expansion of \fIword\fP (or a message to that effect
if
.I word
is not present) is written to the standard error and the shell, if it
is not present) to the standard error and, if it
is not interactive, exits with a non-zero status.
An interactive shell does not exit, but does not execute the command
associated with the expansion.
@@ -3583,7 +3587,7 @@ is expanded to produce a pattern just as in pathname
expansion, and matched against the expanded value of
.I parameter
using the rules described under
.B Pattern Matching
.B "Pattern Matching"
below.
If the pattern matches the beginning of
the value of
@@ -3622,7 +3626,7 @@ The \fIword\fP is expanded to produce a pattern just as in
pathname expansion, and matched against the expanded value of
.I parameter
using the rules described under
.B Pattern Matching
.B "Pattern Matching"
below.
If the pattern matches a trailing portion of the expanded value of
.IR parameter ,
@@ -3664,7 +3668,7 @@ The \fIpattern\fP is expanded to produce a pattern just as in
pathname expansion and matched against the expanded value of
\fIparameter\fP
using the rules described under
.B Pattern Matching
.B "Pattern Matching"
below.
The longest match of \fIpattern\fP
in the expanded value is replaced with \fIstring\fP.
@@ -4877,9 +4881,13 @@ before executing any of the commands on that line or the compound command.
Aliases are expanded when a command is read, not when it is executed.
Therefore, an
alias definition appearing on the same line as another
command does not take effect until the shell reads the next line of input.
command does not take effect until the shell reads the next line of input,
and an alias definition in a compound command does not take
effect until the shell parses and executes the entire compound command.
The commands following the alias definition
on that line are not affected by the new alias.
on that line,
or in the rest of a compound command,
are not affected by the new alias.
This behavior is also an issue when functions are executed.
Aliases are expanded when a function definition is read,
not when the function is executed, because a function definition
@@ -5495,7 +5503,7 @@ interpreter consist of a single optional argument following the
interpreter name on the first line of the program, followed
by the name of the program, followed by the command
arguments, if any.
.SH COMMAND EXECUTION ENVIRONMENT
.SH "COMMAND EXECUTION ENVIRONMENT"
The shell has an \fIexecution environment\fP, which consists of the
following:
.IP \(bu
@@ -5846,17 +5854,22 @@ complete, for compatibility.
.I Job control
refers to the ability to selectively stop (\fIsuspend\fP)
the execution of processes and continue (\fIresume\fP)
their execution at a later point. A user typically employs
their execution at a later point.
A user typically employs
this facility via an interactive interface supplied jointly
by the operating system kernel's terminal driver and
.BR bash .
.PP
The shell associates a
.I job
with each pipeline. It keeps a table of currently executing
jobs, which may be listed with the
with each pipeline.
It keeps a table of currently executing
jobs, which the
.B jobs
command. When
command will display.
Each job has a \fIjob number\fP, which \fBjobs\fP displays between brackets.
Job numbers start at 1.
When
.B bash
starts a job asynchronously (in the
.IR background ),
@@ -5874,15 +5887,20 @@ uses the
.I job
abstraction as the basis for job control.
.PP
To facilitate the implementation of the user interface to job
control, the operating system maintains the notion of a \fIcurrent terminal
process group ID\fP. Members of this process group (processes whose
To facilitate the implementation of the user interface to job control,
each process has a \fIprocess group ID\fP, and
the operating system maintains the notion of a \fIcurrent terminal
process group ID\fP.
Processes that have the same process group ID are said to be part of
the same \fIprocess group\fP.
Members of the \fIforeground\fP process group (processes whose
process group ID is equal to the current terminal process group ID)
receive keyboard-generated signals such as
.SM
.BR SIGINT .
These processes are said to be in the
.IR foreground .
Processes in the foreground process group are said to be
.I foreground
processes.
.I Background
processes are those whose process group ID differs from the terminal's;
such processes are immune to keyboard-generated signals.
@@ -5894,7 +5912,7 @@ Background processes which attempt to read from (write to when
.Q tostop
is in effect) the terminal are sent a
.SM
.B SIGTTIN (SIGTTOU)
.B "SIGTTIN (SIGTTOU)"
signal by the kernel's terminal driver,
which, unless caught, suspends the process.
.PP
@@ -5909,31 +5927,38 @@ Typing the
character (typically
.BR \*^Z ,
Control-Z) while a process is running
causes that process to be stopped and returns control to
stops that process and returns control to
.BR bash .
Typing the
.I "delayed suspend"
character (typically
.BR \*^Y ,
Control-Y) causes the process to be stopped when it
attempts to read input from the terminal, and control to
be returned to
Control-Y) causes the process stop when it
attempts to read input from the terminal, and returns control to
.BR bash .
The user may then manipulate the state of this job, using the
The user then manipulates the state of this job, using the
.B bg
command to continue it in the background, the
.B fg
command to continue it in the foreground, or
the
command to continue it in the foreground, or the
.B kill
command to kill it. A \fB\*^Z\fP takes effect immediately,
and has the additional side effect of causing pending output
and typeahead to be discarded.
command to kill it.
The suspend character takes effect immediately,
and has the additional side effect of discarding any pending output
and typeahead.
To force a background process to stop, or stop a process
that's not associated with the current terminal session,
send it the
.SM
.B SIGSTOP
signal using \fBkill\fP.
.PP
There are a number of ways to refer to a job in the shell.
The character
The
.B %
introduces a job specification (\fIjobspec\fP). Job number
character introduces a job specification (jobspec).
.PP
Job number
.I n
may be referred to as
.BR %n .
@@ -5941,42 +5966,45 @@ A job may also be referred to using a prefix of the name used to
start it, or using a substring that appears in its command line.
For example,
.B %ce
refers to a stopped
job whose command name begins with
refers to a job whose command name begins with
.BR ce .
If a prefix matches more than one job,
.B bash
reports an error. Using
Using
.BR %?ce ,
on the other hand, refers to any job containing the string
.B ce
in its command line. If the substring matches more than one job,
in its command line.
If the prefix or substring matches more than one job,
.B bash
reports an error. The symbols
reports an error.
.PP
The symbols
.B %%
and
.B %+
refer to the shell's notion of the
.IR "current job" ,
which is the last job stopped while it was in
the foreground or started in the background.
The
.I "previous job"
may be referenced using
.BR %\- .
.IR "current job" .
A single % (with no accompanying job specification) also refers to the
current job.
.B %\-
refers to the
.IR "previous job" .
When a job starts in the background,
a job stops while in the foreground,
or a job is resumed in the background,
it becomes the current job.
The job that was the current job becomes the previous job.
When the current job terminates, the previous job becomes the
current job.
If there is only a single job, \fB%+\fP and \fB%\-\fP can both be used
to refer to that job.
In output pertaining to jobs (e.g., the output of the
.B jobs
command), the current job is always flagged with a
command), the current job is always marked with a
.BR + ,
and the previous job with a
.BR \- .
A single % (with no accompanying job specification) also refers to the
current job.
.PP
Simply naming a job can be used to bring it into the
foreground:
Simply naming a job can be used to bring it into the foreground:
.B %1
is a synonym for
.Q "fg %1" ,
@@ -5989,12 +6017,13 @@ resumes job 1 in the background, equivalent to
The shell learns immediately whenever a job changes state.
Normally,
.B bash
waits until it is about to print a prompt before reporting
waits until it is about to print a prompt before
notifying the user about
changes in a job's status so as to not interrupt
any other output,
though it will notify of changes in a job's status after a
foreground command in
a list completes, before executing the next command.
a list completes, before executing the next command in the list.
If the
.B \-b
option to the
@@ -6003,27 +6032,36 @@ builtin command
is enabled,
.B bash
reports such changes immediately.
Any trap on
\fBBash\fP executes any trap on
.SM
.B SIGCHLD
is executed for each child that exits.
for each child that terminates.
.PP
If an attempt to exit
When a job terminates and \fBbash\fP notifies the user about it,
\fBbash\fP removes the job from the table.
It will not appear in \fBjobs\fP output, but \fBwait\fP will
report its exit status, as long as it's supplied the process ID
associated with the job as an argument.
When the table is empty, job numbers start over at 1.
.PP
If a user attempts to exit
.B bash
is made while jobs are stopped (or, if the \fBcheckjobs\fP shell option has
while jobs are stopped (or, if the \fBcheckjobs\fP shell option has
been enabled using the \fBshopt\fP builtin, running), the shell prints a
warning message, and, if the \fBcheckjobs\fP option is enabled, lists the
jobs and their statuses.
The
.B jobs
command may then be used to inspect their status.
If a second attempt to exit is made without an intervening command,
the shell does not print another warning, and any stopped
jobs are terminated.
If the user immediately attempts to exit again,
without an intervening command,
\fBbash\fP does not print another warning, and
terminates any stopped jobs.
.PP
When the shell is waiting for a job or process using the \fBwait\fP
builtin, and job control is enabled, \fBwait\fP will return when the
job changes state. The \fB\-f\fP option causes \fBwait\fP to wait
job changes state.
The \fB\-f\fP option causes \fBwait\fP to wait
until the job or process terminates before returning.
.SH PROMPTING
When executing interactively,
@@ -6323,7 +6361,7 @@ Key bindings may contain the following symbolic character names:
.IR NEWLINE ,
.IR RET ,
.IR RETURN ,
.IR RUBOUT ,
.IR RUBOUT (a destructive backspace),
.IR SPACE ,
.IR SPC ,
and
@@ -7364,6 +7402,7 @@ Delete the character at point.
If this function is bound to the
same character as the tty \fBEOF\fP character, as \fBC\-d\fP
commonly is, see above for the effects.
This may also be bound to the Delete key on some keyboards.
.TP
.B backward\-delete\-char (Rubout)
Delete the character behind the cursor.
@@ -7659,7 +7698,7 @@ completion matches.
.B complete\-into\-braces (M\-{)
Perform filename completion and insert the list of possible completions
enclosed within braces so the list is available to the shell (see
.B Brace Expansion
.B "Brace Expansion"
above).
.PD
.SS "Keyboard Macros"
@@ -8529,21 +8568,21 @@ and performing any specified
redirections.
The return status is zero.
.TP
\fB\&.\| \fP [\fB\-p\fP \fIpath\fP] \fIfilename\fP [\fIarguments\fP]
\fB\&.\&\fP [\fB\-p\fP \fIpath\fP] \fIfilename\fP [\fIarguments\fP]
.PD 0
.TP
\fBsource\fP [\fB\-p\fP \fIpath\fP] \fIfilename\fP [\fIarguments\fP]
.PD
The \fB\&.\| \fP command (\fBsource\fP) reads and execute commands from
The \fB\&.\&\fP command (\fBsource\fP) reads and execute commands from
.I filename
in the current shell environment and returns the exit status of the
last command executed from
.IR filename .
.IP
If \fIfilename\fP does not contain a slash, \fB\&.\| \fP searchs for it.
If the \fB\-p\fP option is supplied, \fB\&.\| \fP treats \fIpath\fP
If \fIfilename\fP does not contain a slash, \fB\&.\&\fP searches for it.
If the \fB\-p\fP option is supplied, \fB\&.\&\fP treats \fIpath\fP
as a colon-separated list of directories in which to find \fIfilename\fP;
otherwise, \fB\&.\| \fP uses the entries in
otherwise, \fB\&.\&\fP uses the entries in
.SM
.B PATH
to find the directory containing
@@ -8558,7 +8597,7 @@ If the
.B sourcepath
option to the
.B shopt
builtin command is turned off, \fB\&.\| \fP does not search
builtin command is turned off, \fB\&.\&\fP does not search
.SM
.BR PATH .
.IP
@@ -8599,7 +8638,7 @@ had been started with
.BR & .
If
.I jobspec
is not present, the shell's notion of the \fIcurrent job\fP is used.
is not present, the shell uses its notion of the \fIcurrent job\fP.
.B bg
.I jobspec
returns 0 unless run when job control is disabled or, when run with
@@ -9483,19 +9522,18 @@ Without options, remove each
.I id
from the table of active jobs.
Each \fIid\fP may be a job specification \fIjobspec\fP
or a process ID
\fIpid\fP; if \fIid\fP is a \fIpid\fP,
or a process ID \fIpid\fP;
if \fIid\fP is a \fIpid\fP,
\fBdisown\fP uses the job containing \fIpid\fP as \fIjobspec\fP.
If
.IP
If the \fB\-h\fP option is supplied,
\fBdisown\fP does not remove the jobs corresponding to each
.I id
is not present, and neither the \fB\-a\fP nor the \fB\-r\fP option
is supplied, \fBdisown\fP removes the \fIcurrent job\fP.
If the \fB\-h\fP option is supplied, the job corresponding to each
.I id
is not removed from the table, but is marked so that
from the jobs table,
but rather marks them so the shell does not send
.SM
.B SIGHUP
is not sent to the job if the shell receives a
to the job if the shell receives a
.SM
.BR SIGHUP .
.IP
@@ -9507,7 +9545,11 @@ option means to remove or mark all jobs; the
.B \-r
option without an
.I id
argument restricts operation to running jobs.
argument removes or marks running jobs.
If no
.I id
is supplied, and neither the \fB\-a\fP nor the \fB\-r\fP option
is supplied, \fBdisown\fP removes or marks the current job.
.IP
The return value is 0 unless an
.I id
@@ -9853,7 +9895,7 @@ Resume
in the foreground, and make it the current job.
If
.I jobspec
is not present, use the shell's notion of the \fIcurrent job\fP.
is not present, \fBfg\fP uses the shell's notion of the \fIcurrent job\fP.
The return value is that of the command placed into the foreground,
or failure if run when job control is disabled or, when run with
job control enabled, if
@@ -10216,7 +10258,7 @@ passing it
returning its exit status.
.TP
\fBkill\fP [\fB\-s\fP \fIsigspec\fP | \fB\-n\fP \fIsignum\fP | \fB\-\fP\fIsigspec\fP] \
[\fIpid\fP | \fIjobspec\fP] .\|.\|.
\fIid\fP [ .\|.\|. ]
.PD 0
.TP
\fBkill\fP \fB\-l\fP|\fB\-L\fP [\fIsigspec\fP | \fIexit_status\fP]
@@ -10225,10 +10267,12 @@ Send the signal specified by
.I sigspec
or
.I signum
to the processes named by
.I pid
or
.IR jobspec .
to the processes named by each
.IR id .
Each
.I id
may be a job specification \fIjobspec\fP
or a process ID \fIpid\fP.
.I sigspec
is either a case-insensitive signal name such as
.SM
@@ -10247,9 +10291,9 @@ sends
.SM
.BR SIGTERM .
.IP
An argument of
The
.B \-l
lists the signal names.
option lists the signal names.
If any arguments are supplied when
.B \-l
is given,
@@ -10259,7 +10303,11 @@ and the return status is 0.
The \fIexit_status\fP argument to
.B \-l
is a number specifying either a signal number or the exit status of
a process terminated by a signal.
a process terminated by a signal;
if it is supplied, \fBkill\fP prints the name of the signal that caused
the process to terminate.
\fBkill\fP assumes that process exit statuses are greater than 128;
anything less than that is a signal number.
The
.B \-L
option is equivalent to \fB\-l\fP.
@@ -10891,7 +10939,7 @@ a \fIlist\fP,
or a \fIcompound command\fP
(see
.SM
.B SHELL GRAMMAR
.B "SHELL GRAMMAR"
.ie \n(zZ=1 in \fIbash\fP(1)),
.el above),
exits with a non-zero status.
@@ -10957,7 +11005,7 @@ Job control is enabled.
This option is on by default for interactive shells on systems
that support it (see
.SM
.B JOB CONTROL
.B "JOB CONTROL"
.ie \n(zZ=1 in \fIbash\fP(1)).
.el above).
All processes run in a separate process group.
@@ -11023,7 +11071,7 @@ The effect is as if the shell command
.QN "IGNOREEOF=10"
had been executed
(see
.B Shell Variables
.B "Shell Variables"<
.ie \n(zZ=1 in \fIbash\fP(1)).
.el above).
.TP 8
@@ -11179,7 +11227,7 @@ or associated word list, to the standard error.
.TP 8
.B \-B
The shell performs brace expansion (see
.B Brace Expansion
.B "Brace Expansion"
.ie \n(zZ=1 in \fIbash\fP(1)).
.el above).
This is on by default.
@@ -11590,7 +11638,7 @@ This option is enabled by default.
.B globasciiranges
If set, range expressions used in pattern matching bracket expressions (see
.SM
.B Pattern Matching
.B "Pattern Matching"
.ie \n(zZ=1 in \fIbash\fP(1))
.el above)
behave as if in the traditional C locale when performing comparisons.
@@ -11730,7 +11778,7 @@ If set,
.B bash
matches filenames in a case\-insensitive fashion when performing pathname
expansion (see
.B Pathname Expansion
.B "Pathname Expansion"
.ie \n(zZ=1 in \fIbash\fP(1)).
.el above).
.TP 8
@@ -11753,7 +11801,7 @@ If the string is not translated, this has no effect.
.B nullglob
If set, pathname expansion patterns which match no files
(see
.B Pathname Expansion
.B "Pathname Expansion"
.ie \n(zZ=1 in \fIbash\fP(1))
.el above)
expand to nothing and are removed, rather than expanding to themselves.
@@ -12061,7 +12109,7 @@ is executed before every \fIsimple command\fP, \fIfor\fP command,
arithmetic \fIfor\fP command, and before the first command executes
in a shell function (see
.SM
.B SHELL GRAMMAR
.B "SHELL GRAMMAR"
.ie \n(zZ=1 in \fIbash\fP(1)).
.el above).
Refer to the description of the \fBextdebug\fP shell option
@@ -12454,8 +12502,9 @@ is readonly or may not be unset.
\fBwait\fP [\fB\-fn\fP] [\fP\-p\fP \fIvarname\fP] [\fIid\fP .\|.\|.]
Wait for each specified child process \fIid\fP and return the
termination status of the last \fIid\fP.
Each \fIid\fP may be a process ID or a job specification;
if a job spec is supplied, \fBwait\fP waits for all processes in the job.
Each \fIid\fP may be a process ID \fIpid\fP
or a job specification \fIjobspec\fP;
if a jobspec is supplied, \fBwait\fP waits for all processes in the job.
.IP
If no options or \fIid\fPs are supplied,
\fBwait\fP waits for all running background jobs and
@@ -12464,20 +12513,21 @@ if its process id is the same as \fB$!\fP,
and the return status is zero.
.IP
If the \fB\-n\fP option is supplied, \fBwait\fP waits for any one of
the given \fIid\fPs or, if no \fIid\fPs are supplied, any job
or process substitution,
the given \fIid\fPs or,
if no \fIid\fPs are supplied, any job or process substitution,
to complete and returns its exit status.
If none of the supplied \fIid\fPs is a child of the shell,
or if no \fIid\fPs are supplied and the shell has no unwaited-for children,
the exit status is 127.
.IP
If the \fB\-p\fP option is supplied, the process or job identifier
of the job for which the exit status is returned is assigned to the
If the \fB\-p\fP option is supplied, \fBwait\fP assigns
the process or job identifier of the job
for which the exit status is returned to the
variable \fIvarname\fP named by the option argument.
The variable,
which cannot be readonly,
will be unset initially, before any assignment.
This is useful only when the \fB\-n\fP option is supplied.
This is useful only when used with the \fB\-n\fP option.
.IP
Supplying the \fB\-f\fP option, when job control is enabled,
forces \fBwait\fP to wait for each \fIid\fP to terminate before
+167 -109
View File
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2024 October 10<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2024 October 14<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -802,7 +802,9 @@ where pipes are created,
is executed in a <I>subshell</I>, which is a
separate process.
See
<FONT SIZE=-1><B>COMMAND EXECUTION ENVIRONMENT</B></FONT>
<FONT SIZE=-1><B>COMMAND EXECUTION ENVIRONMENT</B>
</FONT>
for a description of subshells and a subshell environment.
If the <B>lastpipe</B> option is enabled using the <B>shopt</B> builtin
(see the description of <B>shopt</B> below),
@@ -915,7 +917,9 @@ newline in place of a semicolon.
<DL COMPACT>
<DT>(<I>list</I>)<DD>
<I>list</I> is executed in a subshell (see
<FONT SIZE=-1><B>COMMAND EXECUTION ENVIRONMENT</B></FONT>
<FONT SIZE=-1><B>COMMAND EXECUTION ENVIRONMENT</B>
</FONT>
below for a description of a subshell environment).
Variable assignments and builtin
commands that affect the shell's environment do not remain in effect
@@ -3607,26 +3611,27 @@ If set, <B>bash</B> uses its value as the name of a directory in which
<DD>
This variable controls how the shell interacts with the user and
job control.
If this variable is set, single-word simple
commands without redirections are treated as candidates for resumption
If this variable is set, simple commands
consisting of only a single word,
without redirections, are treated as candidates for resumption
of an existing stopped job.
There is no ambiguity allowed; if there is more than one job
beginning with the string typed, the most recently accessed job
is selected.
beginning with or containing
the word, this selects the most recently accessed job.
The
<I>name</I>
of a stopped job, in this context, is the command line used to
start it.
start it, as displayed by <B>jobs</B>.
If set to the value
<I>exact</I>,
the string supplied must match the name of a stopped job exactly;
the word must match the name of a stopped job exactly;
if set to
<I>substring</I>,
the string supplied needs to match a substring of the name of a
stopped job. The
the word needs to match a substring of the name of a stopped job.
The
<I>substring</I>
value provides functionality analogous to the
@@ -3636,9 +3641,12 @@ job identifier (see
<FONT SIZE=-1><B>JOB CONTROL</B>
</FONT>
below). If set to any other value, the supplied string must
be a prefix of a stopped job's name; this provides functionality
analogous to the <B>%</B><I>string</I> job identifier.
below).
If set to any other value (e.g.,
<I>prefix</I>),
the word must be a prefix of a stopped job's name;
this provides functionality analogous to the <B>%</B><I>string</I> job identifier.
<DT><B>histchars</B>
<DD>
@@ -4165,8 +4173,8 @@ number without a leading
or
tilde expansion assumes
is assumed.
<P>
The results of tilde expansion are treated as if they were quoted, so
@@ -4314,11 +4322,12 @@ not be assigned in this way.
If
<I>parameter</I>
is null or unset, the expansion of <I>word</I> (or a message to that effect
is null or unset, the shell writes
the expansion of <I>word</I> (or a message to that effect
if
<I>word</I>
is not present) is written to the standard error and the shell, if it
is not present) to the standard error and, if it
is not interactive, exits with a non-zero status.
An interactive shell does not exit, but does not execute the command
associated with the expansion.
@@ -6124,9 +6133,13 @@ before executing any of the commands on that line or the compound command.
Aliases are expanded when a command is read, not when it is executed.
Therefore, an
alias definition appearing on the same line as another
command does not take effect until the shell reads the next line of input.
command does not take effect until the shell reads the next line of input,
and an alias definition in a compound command does not take
effect until the shell parses and executes the entire compound command.
The commands following the alias definition
on that line are not affected by the new alias.
on that line,
or in the rest of a compound command,
are not affected by the new alias.
This behavior is also an issue when functions are executed.
Aliases are expanded when a function definition is read,
not when the function is executed, because a function definition
@@ -7328,7 +7341,8 @@ complete, for compatibility.
refers to the ability to selectively stop (<I>suspend</I>)
the execution of processes and continue (<I>resume</I>)
their execution at a later point. A user typically employs
their execution at a later point.
A user typically employs
this facility via an interactive interface supplied jointly
by the operating system kernel's terminal driver and
<B>bash</B>.
@@ -7338,11 +7352,15 @@ by the operating system kernel's terminal driver and
The shell associates a
<I>job</I>
with each pipeline. It keeps a table of currently executing
jobs, which may be listed with the
with each pipeline.
It keeps a table of currently executing
jobs, which the
<B>jobs</B>
command. When
command will display.
Each job has a <I>job number</I>, which <B>jobs</B> displays between brackets.
Job numbers start at 1.
When
<B>bash</B>
starts a job asynchronously (in the
@@ -7368,17 +7386,22 @@ uses the
abstraction as the basis for job control.
<P>
To facilitate the implementation of the user interface to job
control, the operating system maintains the notion of a <I>current terminal
process group ID</I>. Members of this process group (processes whose
To facilitate the implementation of the user interface to job control,
each process has a <I>process group ID</I>, and
the operating system maintains the notion of a <I>current terminal
process group ID</I>.
Processes that have the same process group ID are said to be part of
the same <I>process group</I>.
Members of the <I>foreground</I> process group (processes whose
process group ID is equal to the current terminal process group ID)
receive keyboard-generated signals such as
<FONT SIZE=-1><B>SIGINT</B>.
</FONT>
These processes are said to be in the
<I>foreground</I>.
Processes in the foreground process group are said to be
<I>foreground</I>
processes.
<I>Background</I>
processes are those whose process group ID differs from the terminal's;
@@ -7412,7 +7435,7 @@ character (typically
<B>^Z</B>,
Control-Z) while a process is running
causes that process to be stopped and returns control to
stops that process and returns control to
<B>bash</B>.
Typing the
@@ -7421,31 +7444,40 @@ Typing the
character (typically
<B>^Y</B>,
Control-Y) causes the process to be stopped when it
attempts to read input from the terminal, and control to
be returned to
Control-Y) causes the process stop when it
attempts to read input from the terminal, and returns control to
<B>bash</B>.
The user may then manipulate the state of this job, using the
The user then manipulates the state of this job, using the
<B>bg</B>
command to continue it in the background, the
<B>fg</B>
command to continue it in the foreground, or
the
command to continue it in the foreground, or the
<B>kill</B>
command to kill it. A <B>^Z</B> takes effect immediately,
and has the additional side effect of causing pending output
and typeahead to be discarded.
command to kill it.
The suspend character takes effect immediately,
and has the additional side effect of discarding any pending output
and typeahead.
To force a background process to stop, or stop a process
that's not associated with the current terminal session,
send it the
<FONT SIZE=-1><B>SIGSTOP</B>
</FONT>
signal using <B>kill</B>.
<P>
There are a number of ways to refer to a job in the shell.
The character
The
<B>%</B>
introduces a job specification (<I>jobspec</I>). Job number
character introduces a job specification (jobspec).
<P>
Job number
<I>n</I>
may be referred to as
@@ -7456,56 +7488,59 @@ start it, or using a substring that appears in its command line.
For example,
<B>%ce</B>
refers to a stopped
job whose command name begins with
refers to a job whose command name begins with
<B>ce</B>.
If a prefix matches more than one job,
<B>bash</B>
reports an error. Using
Using
<B>%?ce</B>,
on the other hand, refers to any job containing the string
<B>ce</B>
in its command line. If the substring matches more than one job,
in its command line.
If the prefix or substring matches more than one job,
<B>bash</B>
reports an error. The symbols
reports an error.
<P>
The symbols
<B>%%</B>
and
<B>%+</B>
refer to the shell's notion of the
<I>current job</I>,
<I>current job</I>.
which is the last job stopped while it was in
the foreground or started in the background.
The
<I>previous job</I>
A single % (with no accompanying job specification) also refers to the
current job.
<B>%-</B>
may be referenced using
<B>%-</B>.
refers to the
<I>previous job</I>.
When a job starts in the background,
a job stops while in the foreground,
or a job is resumed in the background,
it becomes the current job.
The job that was the current job becomes the previous job.
When the current job terminates, the previous job becomes the
current job.
If there is only a single job, <B>%+</B> and <B>%-</B> can both be used
to refer to that job.
In output pertaining to jobs (e.g., the output of the
<B>jobs</B>
command), the current job is always flagged with a
command), the current job is always marked with a
<B>+</B>,
and the previous job with a
<B>-</B>.
A single % (with no accompanying job specification) also refers to the
current job.
<P>
Simply naming a job can be used to bring it into the
foreground:
Simply naming a job can be used to bring it into the foreground:
<B>%1</B>
is a synonym for
@@ -7521,12 +7556,13 @@ The shell learns immediately whenever a job changes state.
Normally,
<B>bash</B>
waits until it is about to print a prompt before reporting
waits until it is about to print a prompt before
notifying the user about
changes in a job's status so as to not interrupt
any other output,
though it will notify of changes in a job's status after a
foreground command in
a list completes, before executing the next command.
a list completes, before executing the next command in the list.
If the
<B>-b</B>
@@ -7538,17 +7574,25 @@ is enabled,
<B>bash</B>
reports such changes immediately.
Any trap on
<B>Bash</B> executes any trap on
<FONT SIZE=-1><B>SIGCHLD</B>
</FONT>
is executed for each child that exits.
for each child that terminates.
<P>
If an attempt to exit
When a job terminates and <B>bash</B> notifies the user about it,
<B>bash</B> removes the job from the table.
It will not appear in <B>jobs</B> output, but <B>wait</B> will
report its exit status, as long as it's supplied the process ID
associated with the job as an argument.
When the table is empty, job numbers start over at 1.
<P>
If a user attempts to exit
<B>bash</B>
is made while jobs are stopped (or, if the <B>checkjobs</B> shell option has
while jobs are stopped (or, if the <B>checkjobs</B> shell option has
been enabled using the <B>shopt</B> builtin, running), the shell prints a
warning message, and, if the <B>checkjobs</B> option is enabled, lists the
jobs and their statuses.
@@ -7556,14 +7600,16 @@ The
<B>jobs</B>
command may then be used to inspect their status.
If a second attempt to exit is made without an intervening command,
the shell does not print another warning, and any stopped
jobs are terminated.
If the user immediately attempts to exit again,
without an intervening command,
<B>bash</B> does not print another warning, and
terminates any stopped jobs.
<P>
When the shell is waiting for a job or process using the <B>wait</B>
builtin, and job control is enabled, <B>wait</B> will return when the
job changes state. The <B>-f</B> option causes <B>wait</B> to wait
job changes state.
The <B>-f</B> option causes <B>wait</B> to wait
until the job or process terminates before returning.
<A NAME="lbCF">&nbsp;</A>
<H3>PROMPTING</H3>
@@ -7964,7 +8010,7 @@ Key bindings may contain the following symbolic character names:
<I>RETURN</I>,
<I>RUBOUT</I>,
<I>RUBOUT</I>(a<I>destructive</I>backspace),
<I>SPACE</I>,
@@ -9270,6 +9316,7 @@ Delete the character at point.
If this function is bound to the
same character as the tty <B>EOF</B> character, as <B>C-d</B>
commonly is, see above for the effects.
This may also be bound to the Delete key on some keyboards.
<DT><B>backward-delete-char (Rubout)</B>
<DD>
@@ -10733,11 +10780,11 @@ No effect; the command does nothing beyond expanding
and performing any specified
redirections.
The return status is zero.
<DT><B>. </B> [<B>-p</B> <I>path</I>] <I>filename</I> [<I>arguments</I>]<DD>
<DT><B>.</B> [<B>-p</B> <I>path</I>] <I>filename</I> [<I>arguments</I>]<DD>
<DT><B>source</B> [<B>-p</B> <I>path</I>] <I>filename</I> [<I>arguments</I>]<DD>
The <B>. </B> command (<B>source</B>) reads and execute commands from
The <B>.</B> command (<B>source</B>) reads and execute commands from
<I>filename</I>
in the current shell environment and returns the exit status of the
@@ -10745,10 +10792,10 @@ last command executed from
<I>filename</I>.
<DT><DD>
If <I>filename</I> does not contain a slash, <B>. </B> searchs for it.
If the <B>-p</B> option is supplied, <B>. </B> treats <I>path</I>
If <I>filename</I> does not contain a slash, <B>.</B> searches for it.
If the <B>-p</B> option is supplied, <B>.</B> treats <I>path</I>
as a colon-separated list of directories in which to find <I>filename</I>;
otherwise, <B>. </B> uses the entries in
otherwise, <B>.</B> uses the entries in
<FONT SIZE=-1><B>PATH</B>
</FONT>
@@ -10768,7 +10815,7 @@ If the
option to the
<B>shopt</B>
builtin command is turned off, <B>. </B> does not search
builtin command is turned off, <B>.</B> does not search
<FONT SIZE=-1><B>PATH</B>.
</FONT>
@@ -10812,7 +10859,7 @@ had been started with
If
<I>jobspec</I>
is not present, the shell's notion of the <I>current job</I> is used.
is not present, the shell uses its notion of the <I>current job</I>.
<B>bg</B>
<I>jobspec</I>
@@ -11854,22 +11901,20 @@ Without options, remove each
from the table of active jobs.
Each <I>id</I> may be a job specification <I>jobspec</I>
or a process ID
<I>pid</I>; if <I>id</I> is a <I>pid</I>,
or a process ID <I>pid</I>;
if <I>id</I> is a <I>pid</I>,
<B>disown</B> uses the job containing <I>pid</I> as <I>jobspec</I>.
If
<DT><DD>
If the <B>-h</B> option is supplied,
<B>disown</B> does not remove the jobs corresponding to each
<I>id</I>
is not present, and neither the <B>-a</B> nor the <B>-r</B> option
is supplied, <B>disown</B> removes the <I>current job</I>.
If the <B>-h</B> option is supplied, the job corresponding to each
<I>id</I>
is not removed from the table, but is marked so that
from the jobs table,
but rather marks them so the shell does not send
<FONT SIZE=-1><B>SIGHUP</B>
</FONT>
is not sent to the job if the shell receives a
to the job if the shell receives a
<FONT SIZE=-1><B>SIGHUP</B>.
</FONT>
@@ -11886,7 +11931,12 @@ option means to remove or mark all jobs; the
option without an
<I>id</I>
argument restricts operation to running jobs.
argument removes or marks running jobs.
If no
<I>id</I>
is supplied, and neither the <B>-a</B> nor the <B>-r</B> option
is supplied, <B>disown</B> removes or marks the current job.
<DT><DD>
The return value is 0 unless an
<I>id</I>
@@ -12325,7 +12375,7 @@ in the foreground, and make it the current job.
If
<I>jobspec</I>
is not present, use the shell's notion of the <I>current job</I>.
is not present, <B>fg</B> uses the shell's notion of the <I>current job</I>.
The return value is that of the command placed into the foreground,
or failure if run when job control is disabled or, when run with
job control enabled, if
@@ -12759,7 +12809,7 @@ passing it
<I>args</I>,
returning its exit status.
<DT><B>kill</B> [<B>-s</B> <I>sigspec</I> | <B>-n</B> <I>signum</I> | <B>-</B><I>sigspec</I>] [<I>pid</I> | <I>jobspec</I>] ...<DD>
<DT><B>kill</B> [<B>-s</B> <I>sigspec</I> | <B>-n</B> <I>signum</I> | <B>-</B><I>sigspec</I>] <I>id</I> [ ... ]<DD>
<DT><B>kill</B> <B>-l</B>|<B>-L</B> [<I>sigspec</I> | <I>exit_status</I>]<DD>
@@ -12769,12 +12819,14 @@ Send the signal specified by
or
<I>signum</I>
to the processes named by
<I>pid</I>
to the processes named by each
<I>id</I>.
or
<I>jobspec</I>.
Each
<I>id</I>
may be a job specification <I>jobspec</I>
or a process ID <I>pid</I>.
<I>sigspec</I>
is either a case-insensitive signal name such as
@@ -12800,10 +12852,10 @@ sends
</FONT>
<DT><DD>
An argument of
The
<B>-l</B>
lists the signal names.
option lists the signal names.
If any arguments are supplied when
<B>-l</B>
@@ -12816,7 +12868,11 @@ The <I>exit_status</I> argument to
<B>-l</B>
is a number specifying either a signal number or the exit status of
a process terminated by a signal.
a process terminated by a signal;
if it is supplied, <B>kill</B> prints the name of the signal that caused
the process to terminate.
<B>kill</B> assumes that process exit statuses are greater than 128;
anything less than that is a signal number.
The
<B>-L</B>
@@ -13719,7 +13775,7 @@ The effect is as if the shell command
had been executed
(see
<B>Shell Variables</B>
<B>Shell Variables&lt;</B>
above).
@@ -15522,8 +15578,9 @@ is readonly or may not be unset.
<DT><B>wait</B> [<B>-fn</B>] [-p <I>varname</I>] [<I>id</I> ...]<DD>
Wait for each specified child process <I>id</I> and return the
termination status of the last <I>id</I>.
Each <I>id</I> may be a process ID or a job specification;
if a job spec is supplied, <B>wait</B> waits for all processes in the job.
Each <I>id</I> may be a process ID <I>pid</I>
or a job specification <I>jobspec</I>;
if a jobspec is supplied, <B>wait</B> waits for all processes in the job.
<DT><DD>
If no options or <I>id</I>s are supplied,
<B>wait</B> waits for all running background jobs and
@@ -15532,20 +15589,21 @@ if its process id is the same as <B>$!</B>,
and the return status is zero.
<DT><DD>
If the <B>-n</B> option is supplied, <B>wait</B> waits for any one of
the given <I>id</I>s or, if no <I>id</I>s are supplied, any job
or process substitution,
the given <I>id</I>s or,
if no <I>id</I>s are supplied, any job or process substitution,
to complete and returns its exit status.
If none of the supplied <I>id</I>s is a child of the shell,
or if no <I>id</I>s are supplied and the shell has no unwaited-for children,
the exit status is 127.
<DT><DD>
If the <B>-p</B> option is supplied, the process or job identifier
of the job for which the exit status is returned is assigned to the
If the <B>-p</B> option is supplied, <B>wait</B> assigns
the process or job identifier of the job
for which the exit status is returned to the
variable <I>varname</I> named by the option argument.
The variable,
which cannot be readonly,
will be unset initially, before any assignment.
This is useful only when the <B>-n</B> option is supplied.
This is useful only when used with the <B>-n</B> option.
<DT><DD>
Supplying the <B>-f</B> option, when job control is enabled,
forces <B>wait</B> to wait for each <I>id</I> to terminate before
@@ -16165,7 +16223,7 @@ Array variables may not (yet) be exported.
<HR>
<TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>GNU Bash 5.3<TH ALIGN=CENTER width=33%>2024 October 10<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>GNU Bash 5.3<TH ALIGN=CENTER width=33%>2024 October 14<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -16274,7 +16332,7 @@ Array variables may not (yet) be exported.
<DT><A HREF="#lbDJ">BUGS</A><DD>
</DL>
<HR>
This document was created by man2html from /usr/local/src/bash/bash-20241007/doc/bash.1.<BR>
Time: 10 October 2024 17:47:42 EDT
This document was created by man2html from /usr/local/src/bash/bash-20241012/doc/bash.1.<BR>
Time: 14 October 2024 17:00:24 EDT
</BODY>
</HTML>
+268 -241
View File
@@ -1,9 +1,9 @@
This is bash.info, produced by makeinfo version 7.1 from bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 10 October 2024).
Bash shell (version 5.3, 14 October 2024).
This is Edition 5.3, last updated 10 October 2024, of The GNU Bash
This is Edition 5.3, last updated 14 October 2024, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Copyright © 1988-2024 Free Software Foundation, Inc.
@@ -26,10 +26,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 10 October 2024). The Bash home page is
Bash shell (version 5.3, 14 October 2024). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.3, last updated 10 October 2024, of The GNU Bash
This is Edition 5.3, last updated 14 October 2024, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Bash contains features that appear in other popular shells, and some
@@ -1774,7 +1774,7 @@ replaced with the corresponding element from the directory stack, as it
would be displayed by the dirs builtin invoked with the characters
following tilde in the tilde-prefix as an argument (*note The Directory
Stack::). If the tilde-prefix, sans the tilde, consists of a number
without a leading + or -, + is assumed.
without a leading + or -, tilde expansion assumes +.
The results of tilde expansion are treated as if they were quoted, so
the replacement is not subject to word splitting and filename expansion.
@@ -1904,12 +1904,12 @@ omitted, the operator tests only for existence.
DEFAULT
${PARAMETER:?WORD}
If PARAMETER is null or unset, the expansion of WORD (or a message
to that effect if WORD is not present) is written to the standard
error and the shell, if it is not interactive, exits with a
non-zero status. An interactive shell does not exit, but does not
execute the command associated with the expansion. Otherwise, the
value of PARAMETER is substituted.
If PARAMETER is null or unset, the shell writes the expansion of
WORD (or a message to that effect if WORD is not present) to the
standard error and, if it is not interactive, exits with a non-zero
status. An interactive shell does not exit, but does not execute
the command associated with the expansion. Otherwise, the value of
PARAMETER is substituted.
$ var=
$ : ${var:?var is unset or null}
@@ -7071,15 +7071,17 @@ all lines that make up a compound command, before executing any of the
commands on that line or the compound command. Aliases are expanded
when a command is read, not when it is executed. Therefore, an alias
definition appearing on the same line as another command does not take
effect until the shell reads the next line of input. The commands
following the alias definition on that line are not affected by the new
alias. This behavior is also an issue when functions are executed.
Aliases are expanded when a function definition is read, not when the
function is executed, because a function definition is itself a command.
As a consequence, aliases defined in a function are not available until
after that function is executed. To be safe, always put alias
definitions on a separate line, and do not use alias in compound
commands.
effect until the shell reads the next line of input, and an alias
definition in a compound command does not take effect until the shell
parses and executes the entire compound command. The commands following
the alias definition on that line, or in the rest of a compound command,
are not affected by the new alias. This behavior is also an issue when
functions are executed. Aliases are expanded when a function definition
is read, not when the function is executed, because a function
definition is itself a command. As a consequence, aliases defined in a
function are not available until after that function is executed. To be
safe, always put alias definitions on a separate line, and do not use
alias in compound commands.
For almost every purpose, shell functions are preferred over aliases.
@@ -8065,8 +8067,10 @@ interface supplied jointly by the operating system kernel's terminal
driver and Bash.
The shell associates a JOB with each pipeline. It keeps a table of
currently executing jobs, which may be listed with the jobs command.
When Bash starts a job asynchronously, it prints a line that looks like:
currently executing jobs, which the jobs command will display. Each
job has a job number”, which jobs displays between brackets. Job
numbers start at 1. When Bash starts a job asynchronously, it prints a
line that looks like:
[1] 25647
indicating that this job is job number 1 and that the process ID of the
last process in the pipeline associated with this job is 25647. All of
@@ -8074,72 +8078,85 @@ the processes in a single pipeline are members of the same job. Bash
uses the JOB abstraction as the basis for job control.
To facilitate the implementation of the user interface to job
control, the operating system maintains the notion of a current terminal
process group ID. Members of this process group (processes whose
process group ID is equal to the current terminal process group ID)
receive keyboard-generated signals such as SIGINT. These processes
are said to be in the foreground. Background processes are those whose
process group ID differs from the terminal's; such processes are immune
to keyboard-generated signals. Only foreground processes are allowed to
read from or, if the user so specifies with stty tostop, write to the
terminal. Background processes which attempt to read from (write to
when tostop is in effect) the terminal are sent a SIGTTIN
(SIGTTOU) signal by the kernel's terminal driver, which, unless
caught, suspends the process.
control, each process has a “process group ID”, and the operating system
maintains the notion of a current terminal process group ID. Processes
that have the same process group ID are said to be part of the same
“process group”. Members of the foreground process group (processes
whose process group ID is equal to the current terminal process group
ID) receive keyboard-generated signals such as SIGINT. Processes in
the foreground process group are said to be foreground processes.
Background processes are those whose process group ID differs from the
terminal's; such processes are immune to keyboard-generated signals.
Only foreground processes are allowed to read from or, if the user so
specifies with stty tostop, write to the terminal. Background
processes which attempt to read from (write to when tostop is in
effect) the terminal are sent a SIGTTIN (SIGTTOU) signal by the
kernel's terminal driver, which, unless caught, suspends the process.
If the operating system on which Bash is running supports job
control, Bash contains facilities to use it. Typing the “suspend”
character (typically ^Z, Control-Z) while a process is running causes
that process to be stopped and returns control to Bash. Typing the
“delayed suspend” character (typically ^Y, Control-Y) causes the
process to be stopped when it attempts to read input from the terminal,
and control to be returned to Bash. The user then manipulates the state
of this job, using the bg command to continue it in the background,
the fg command to continue it in the foreground, or the kill command
to kill it. A ^Z takes effect immediately, and has the additional
side effect of causing pending output and typeahead to be discarded.
character (typically ^Z, Control-Z) while a process is running stops
that process and returns control to Bash. Typing the “delayed suspend”
character (typically ^Y, Control-Y) causes the process to stop when it
attempts to read input from the terminal, and returns control to Bash.
The user then manipulates the state of this job, using the bg command
to continue it in the background, the fg command to continue it in the
foreground, or the kill command to kill it. The suspend character
takes effect immediately, and has the additional side effect of
discarding any pending output and typeahead. If you want to force a
background process to stop, or stop a process that's not associated with
your terminal session, send it the SIGSTOP signal using kill.
There are a number of ways to refer to a job in the shell. The
character % introduces a job specification (jobspec).
There are a number of ways to refer to a job in the shell. The %
character introduces a job specification (jobspec).
Job number n may be referred to as %n. The symbols %% and %+
refer to the shell's notion of the current job, which is the last job
stopped while it was in the foreground or started in the background. A
single % (with no accompanying job specification) also refers to the
current job. The previous job may be referenced using %-. If there
is only a single job, %+ and %- can both be used to refer to that
job. In output pertaining to jobs (e.g., the output of the jobs
command), the current job is always flagged with a +, and the previous
job with a -.
Job number n may be referred to as %n. A job may also be
referred to using a prefix of the name used to start it, or using a
substring that appears in its command line. For example, %ce refers
to a job whose command name begins with ce. Using %?ce, on the
other hand, refers to any job containing the string ce in its command
line. If the prefix or substring matches more than one job, Bash
reports an error.
A job may also be referred to using a prefix of the name used to
start it, or using a substring that appears in its command line. For
example, %ce refers to a stopped job whose command name begins with
ce. Using %?ce, on the other hand, refers to any job containing the
string ce in its command line. If the prefix or substring matches
more than one job, Bash reports an error.
The symbols %% and %+ refer to the shell's notion of the “current
job”. A single % (with no accompanying job specification) also refers
to the current job. %- refers to the “previous job”. When a job
starts in the background, a job stops while in the foreground, or a job
is resumed in the background, it becomes the current job. The job that
was the current job becomes the previous job. When the current job
terminates, the previous job becomes the current job. If there is only
a single job, %+ and %- can both be used to refer to that job. In
output pertaining to jobs (e.g., the output of the jobs command), the
current job is always marked with a +, and the previous job with a
-.
Simply naming a job can be used to bring it into the foreground: %1
is a synonym for fg %1, bringing job 1 from the background into the
foreground. Similarly, %1 & resumes job 1 in the background,
equivalent to bg %1
equivalent to bg %1.
The shell learns immediately whenever a job changes state. Normally,
Bash waits until it is about to print a prompt before reporting changes
in a job's status so as to not interrupt any other output, though it
will notify of changes in a job's status after a foreground command in a
list completes, before executing the next command. If the -b option
to the set builtin is enabled, Bash reports such changes immediately
(*note The Set Builtin::). Any trap on SIGCHLD is executed for each
child process that exits.
Bash waits until it is about to print a prompt before notifying the user
about changes in a job's status so as to not interrupt any other output,
though it will notify of changes in a job's status after a foreground
command in a list completes, before executing the next command in the
list. If the -b option to the set builtin is enabled, Bash reports
such changes immediately (*note The Set Builtin::). Bash executes any
trap on SIGCHLD for each child process that terminates.
If an attempt to exit Bash is made while jobs are stopped, (or
running, if the checkjobs option is enabled - see *note The Shopt
Builtin::), the shell prints a warning message, and if the checkjobs
option is enabled, lists the jobs and their statuses. The jobs
command may then be used to inspect their status. If a second attempt
to exit is made without an intervening command, Bash does not print
another warning, and any stopped jobs are terminated.
When a job terminates and Bash notifies the user about it, Bash
removes the job from the jobs table. It will not appear in jobs
output, but wait will report its exit status, as long as it's supplied
the process ID associated with the job as an argument. When the table
is empty, job numbers start over at 1.
If a user attempts to exit Bash while jobs are stopped, (or running,
if the checkjobs option is enabled - see *note The Shopt Builtin::),
the shell prints a warning message, and if the checkjobs option is
enabled, lists the jobs and their statuses. The jobs command may then
be used to inspect their status. If the user immediately attempts to
exit again, without an intervening command, Bash does not print another
warning, and terminates any stopped jobs.
When the shell is waiting for a job or process using the wait
builtin, and job control is enabled, wait will return when the job
@@ -8156,21 +8173,22 @@ File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Pre
bg [JOBSPEC ...]
Resume each suspended job JOBSPEC in the background, as if it had
been started with &. If JOBSPEC is not supplied, the current job
is used. The return status is zero unless it is run when job
control is not enabled, or, when run with job control enabled, any
JOBSPEC was not found or specifies a job that was started without
job control.
been started with &. If JOBSPEC is not supplied, the shell uses
its notion of the current job. bg returns zero unless it is run
when job control is not enabled, or, when run with job control
enabled, any JOBSPEC was not found or specifies a job that was
started without job control.
fg
fg [JOBSPEC]
Resume the job JOBSPEC in the foreground and make it the current
job. If JOBSPEC is not supplied, resume the current job. The
return status is that of the command placed into the foreground, or
non-zero if run when job control is disabled or, when run with job
control enabled, JOBSPEC does not specify a valid job or JOBSPEC
specifies a job that was started without job control.
job. If JOBSPEC is not supplied, fg resumes the current job.
The return status is that of the command placed into the
foreground, or non-zero if run when job control is disabled or,
when run with job control enabled, JOBSPEC does not specify a valid
job or JOBSPEC specifies a job that was started without job
control.
jobs
jobs [-lnprs] [JOBSPEC]
@@ -8197,7 +8215,8 @@ File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Pre
If JOBSPEC is supplied, jobs restricts output to information
about that job. If JOBSPEC is not supplied, jobs lists the
status of all jobs.
status of all jobs. The return status is zero unless an invalid
option is encountered or an invalid JOBSPEC is supplied.
If the -x option is supplied, jobs replaces any JOBSPEC found
in COMMAND or ARGUMENTS with the corresponding process group ID,
@@ -8205,21 +8224,25 @@ File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Pre
status.
kill
kill [-s SIGSPEC] [-n SIGNUM] [-SIGSPEC] JOBSPEC or PID
kill [-s SIGSPEC] [-n SIGNUM] [-SIGSPEC] ID [...]
kill -l|-L [EXIT_STATUS]
Send a signal specified by SIGSPEC or SIGNUM to the process named
by job specification JOBSPEC or process ID PID. SIGSPEC is either
a case-insensitive signal name such as SIGINT (with or without
the SIG prefix) or a signal number; SIGNUM is a signal number.
If SIGSPEC and SIGNUM are not present, kill sends SIGTERM.
Send a signal specified by SIGSPEC or SIGNUM to the processes named
by each ID. Each ID may be a job specification JOBSPEC or process
ID PID. SIGSPEC is either a case-insensitive signal name such as
SIGINT (with or without the SIG prefix) or a signal number;
SIGNUM is a signal number. If SIGSPEC and SIGNUM are not present,
kill sends SIGTERM.
The -l option lists the signal names. If any arguments are
supplied when -l is supplied, the names of the signals
corresponding to the arguments are listed, and the return status is
supplied when -l is supplied, kill lists the names of the
signals corresponding to the arguments, and the return status is
zero. EXIT_STATUS is a number specifying a signal number or the
exit status of a process terminated by a signal. The -L option
is equivalent to -l.
exit status of a process terminated by a signal; if it is supplied,
kill prints the name of the signal that caused the process to
terminate. kill assumes that process exit statuses are greater
than 128; anything less than that is a signal number. The -L
option is equivalent to -l.
The return status is zero if at least one signal was successfully
sent, or non-zero if an error occurs or an invalid option is
@@ -8229,9 +8252,9 @@ File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Pre
wait [-fn] [-p VARNAME] [ID ...]
Wait until the child process specified by each ID exits and return
the exit status of the last ID. Each ID may be a PID or job
specification JOBSPEC; if a job spec is supplied, wait waits for
all processes in the job.
the exit status of the last ID. Each ID may be a process ID PID or
a job specification JOBSPEC; if a jobspec is supplied, wait waits
for all processes in the job.
If no options or IDs are supplied, wait waits for all running
background jobs and the last-executed process substitution, if its
@@ -8243,11 +8266,11 @@ File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Pre
is a child of the shell, or if no arguments are supplied and the
shell has no unwaited-for children, the exit status is 127.
If the -p option is supplied, the process or job identifier of
the job for which the exit status is returned is assigned to the
If the -p option is supplied, wait assigns the process or job
identifier of the job for which the exit status is returned to the
variable VARNAME named by the option argument. The variable, which
cannot be readonly, will be unset initially, before any assignment.
This is useful only when the -n option is supplied.
This is useful only when used with the -n option.
Supplying the -f option, when job control is enabled, forces
wait to wait for each ID to terminate before returning its
@@ -8263,16 +8286,18 @@ File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Pre
disown [-ar] [-h] [ID ...]
Without options, remove each ID from the table of active jobs.
Each ID may be a PID or job specification JOBSPEC; if ID is a PID,
disown uses the job containing PID. If the -h option is
supplied, the job is not removed from the table, but is marked so
that SIGHUP is not sent to the job if the shell receives a
SIGHUP. If ID is not present, and neither the -a nor the -r
option is supplied, disown removes the current job.
Each ID may be a job specification JOBSPEC or a process ID PID; if
ID is a PID, disown uses the job containing PID as JOBSPEC.
If the -h option is supplied, disown does not remove the jobs
corresponding to each id from the jobs table, but rather marks
them so the shell does not send SIGHUP to the job if the shell
receives a SIGHUP.
If no ID is supplied, the -a option means to remove or mark all
jobs; the -r option without an ID argument restricts operation to
running jobs.
jobs; the -r option without an ID argument removes or marks
running jobs. If no ID is supplied, and neither the -a nor the
-r option is supplied, disown removes or marks the current job.
The return value is 0 unless an ID does not specify a valid job.
@@ -8296,19 +8321,20 @@ File: bash.info, Node: Job Control Variables, Prev: Job Control Builtins, Up:
auto_resume
This variable controls how the shell interacts with the user and
job control. If this variable exists then single-word simple
commands without redirections are treated as candidates for
resumption of an existing job. There is no ambiguity allowed; if
there is more than one job beginning with the string typed, then
the most recently accessed job is selected. The name of a stopped
job, in this context, is the command line used to start it. If
this variable is set to the value exact, the string supplied must
match the name of a stopped job exactly; if set to substring, the
string supplied needs to match a substring of the name of a stopped
job. The substring value provides functionality analogous to the
%? job ID (*note Job Control Basics::). If set to any other
value, the supplied string must be a prefix of a stopped job's
name; this provides functionality analogous to the % job ID.
job control. If this variable exists then simple commands
consisting of only a single word, without redirections, are treated
as candidates for resumption of an existing job. There is no
ambiguity allowed; if there is more than one job beginning with or
containing the word, then this selects the most recently accessed
job. The name of a stopped job, in this context, is the command
line used to start it, as displayed by jobs. If this variable is
set to the value exact, the word must match the name of a stopped
job exactly; if set to substring, the word needs to match a
substring of the name of a stopped job. The substring value
provides functionality analogous to the %?string job ID (*note
Job Control Basics::). If set to any other value (e.g., prefix),
the word must be a prefix of a stopped job's name; this provides
functionality analogous to the %string job ID.

File: bash.info, Node: Command Line Editing, Next: Using History Interactively, Prev: Job Control, Up: Top
@@ -9090,7 +9116,7 @@ Key Bindings
This key binding syntax recognizes a number of symbolic
character names: DEL, ESC, ESCAPE, LFD, NEWLINE, RET, RETURN,
RUBOUT, SPACE, SPC, and TAB.
RUBOUT (a destructive backspace), SPACE, SPC, and TAB.
"KEYSEQ": FUNCTION-NAME or MACRO
KEYSEQ differs from KEYNAME above in that strings denoting an
@@ -9582,7 +9608,8 @@ File: bash.info, Node: Commands For Text, Next: Commands For Killing, Prev: C
delete-char (C-d)
Delete the character at point. If this function is bound to the
same character as the tty EOF character, as C-d commonly is, see
above for the effects.
above for the effects. This may also be bound to the Delete key on
some keyboards.
backward-delete-char (Rubout)
Delete the character behind the cursor. A numeric argument means
@@ -12642,7 +12669,7 @@ D.1 Index of Shell Builtin Commands
* dirs: Directory Stack Builtins.
(line 7)
* disown: Job Control Builtins.
(line 114)
(line 120)
* echo: Bash Builtins. (line 284)
* enable: Bash Builtins. (line 337)
* eval: Bourne Shell Builtins.
@@ -12667,9 +12694,9 @@ D.1 Index of Shell Builtin Commands
* history: Bash History Builtins.
(line 59)
* jobs: Job Control Builtins.
(line 27)
(line 28)
* kill: Job Control Builtins.
(line 59)
(line 61)
* let: Bash Builtins. (line 394)
* local: Bash Builtins. (line 403)
* logout: Bash Builtins. (line 428)
@@ -12693,7 +12720,7 @@ D.1 Index of Shell Builtin Commands
* shopt: The Shopt Builtin. (line 9)
* source: Bash Builtins. (line 668)
* suspend: Job Control Builtins.
(line 131)
(line 139)
* test: Bourne Shell Builtins.
(line 333)
* times: Bourne Shell Builtins.
@@ -12711,7 +12738,7 @@ D.1 Index of Shell Builtin Commands
* unset: Bourne Shell Builtins.
(line 528)
* wait: Job Control Builtins.
(line 80)
(line 86)

File: bash.info, Node: Reserved Word Index, Next: Variable Index, Prev: Builtin Index, Up: Indexes
@@ -13021,7 +13048,7 @@ D.4 Function Index
* alias-expand-line (): Miscellaneous Commands.
(line 133)
* backward-char (C-b): Commands For Moving. (line 17)
* backward-delete-char (Rubout): Commands For Text. (line 17)
* backward-delete-char (Rubout): Commands For Text. (line 18)
* backward-kill-line (C-x Rubout): Commands For Killing.
(line 11)
* backward-kill-word (M-<DEL>): Commands For Killing.
@@ -13030,9 +13057,9 @@ D.4 Function Index
* beginning-of-history (M-<): Commands For History.
(line 20)
* beginning-of-line (C-a): Commands For Moving. (line 6)
* bracketed-paste-begin (): Commands For Text. (line 34)
* bracketed-paste-begin (): Commands For Text. (line 35)
* call-last-kbd-macro (C-x e): Keyboard Macros. (line 13)
* capitalize-word (M-c): Commands For Text. (line 72)
* capitalize-word (M-c): Commands For Text. (line 73)
* character-search (C-]): Miscellaneous Commands.
(line 41)
* character-search-backward (M-C-]): Miscellaneous Commands.
@@ -13071,7 +13098,7 @@ D.4 Function Index
(line 147)
* do-lowercase-version (M-A, M-B, M-X, ...): Miscellaneous Commands.
(line 14)
* downcase-word (M-l): Commands For Text. (line 68)
* downcase-word (M-l): Commands For Text. (line 69)
* dump-functions (): Miscellaneous Commands.
(line 71)
* dump-macros (): Miscellaneous Commands.
@@ -13093,7 +13120,7 @@ D.4 Function Index
(line 90)
* fetch-history (): Commands For History.
(line 106)
* forward-backward-delete-char (): Commands For Text. (line 22)
* forward-backward-delete-char (): Commands For Text. (line 23)
* forward-char (C-f): Commands For Moving. (line 14)
* forward-search-history (C-s): Commands For History.
(line 33)
@@ -13145,7 +13172,7 @@ D.4 Function Index
(line 39)
* operate-and-get-next (C-o): Commands For History.
(line 99)
* overwrite-mode (): Commands For Text. (line 76)
* overwrite-mode (): Commands For Text. (line 77)
* possible-command-completions (C-x !): Commands For Completion.
(line 87)
* possible-completions (M-?): Commands For Completion.
@@ -13164,7 +13191,7 @@ D.4 Function Index
(line 13)
* previous-screen-line (): Commands For Moving. (line 36)
* print-last-kbd-macro (): Keyboard Macros. (line 17)
* quoted-insert (C-q or C-v): Commands For Text. (line 27)
* quoted-insert (C-q or C-v): Commands For Text. (line 28)
* re-read-init-file (C-x C-r): Miscellaneous Commands.
(line 6)
* redraw-current-line (): Commands For Moving. (line 59)
@@ -13172,7 +13199,7 @@ D.4 Function Index
(line 27)
* revert-line (M-r): Miscellaneous Commands.
(line 26)
* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 31)
* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 32)
* set-mark (C-@): Miscellaneous Commands.
(line 33)
* shell-backward-kill-word (): Commands For Killing.
@@ -13183,7 +13210,7 @@ D.4 Function Index
* shell-forward-word (M-C-f): Commands For Moving. (line 28)
* shell-kill-word (M-C-d): Commands For Killing.
(line 32)
* shell-transpose-words (M-C-t): Commands For Text. (line 57)
* shell-transpose-words (M-C-t): Commands For Text. (line 58)
* skip-csi-sequence (): Miscellaneous Commands.
(line 50)
* spell-correct-word (C-x s): Miscellaneous Commands.
@@ -13191,8 +13218,8 @@ D.4 Function Index
* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
* tilde-expand (M-&): Miscellaneous Commands.
(line 30)
* transpose-chars (C-t): Commands For Text. (line 46)
* transpose-words (M-t): Commands For Text. (line 52)
* transpose-chars (C-t): Commands For Text. (line 47)
* transpose-words (M-t): Commands For Text. (line 53)
* undo (C-_ or C-x C-u): Miscellaneous Commands.
(line 23)
* universal-argument (): Numeric Arguments. (line 10)
@@ -13202,7 +13229,7 @@ D.4 Function Index
(line 16)
* unix-word-rubout (C-w): Commands For Killing.
(line 41)
* upcase-word (M-u): Commands For Text. (line 64)
* upcase-word (M-u): Commands For Text. (line 65)
* yank (C-y): Commands For Killing.
(line 72)
* yank-last-arg (M-. or M-_): Commands For History.
@@ -13355,7 +13382,7 @@ D.5 Concept Index
* quoting: Quoting. (line 6)
* quoting, ANSI: ANSI-C Quoting. (line 6)
* Readline, how to use: Job Control Variables.
(line 22)
(line 23)
* redirection: Redirections. (line 6)
* reserved word: Definitions. (line 70)
* reserved words: Reserved Words. (line 6)
@@ -13424,104 +13451,104 @@ Node: Special Parameters70300
Node: Shell Expansions73761
Node: Brace Expansion75950
Node: Tilde Expansion78678
Node: Shell Parameter Expansion81620
Node: Command Substitution101392
Node: Arithmetic Expansion104925
Node: Process Substitution105938
Node: Word Splitting107054
Node: Filename Expansion109151
Node: Pattern Matching112419
Node: Quote Removal117753
Node: Redirections118057
Node: Executing Commands128272
Node: Simple Command Expansion128939
Node: Command Search and Execution131047
Node: Command Execution Environment133491
Node: Environment136939
Node: Exit Status138842
Node: Signals140900
Node: Shell Scripts144798
Node: Shell Builtin Commands148096
Node: Bourne Shell Builtins150207
Node: Bash Builtins176508
Node: Modifying Shell Behavior212956
Node: The Set Builtin213298
Node: The Shopt Builtin225234
Node: Special Builtins242286
Node: Shell Variables243275
Node: Bourne Shell Variables243709
Node: Bash Variables246217
Node: Bash Features284474
Node: Invoking Bash285488
Node: Bash Startup Files291914
Node: Interactive Shells297227
Node: What is an Interactive Shell?297635
Node: Is this Shell Interactive?298297
Node: Interactive Shell Behavior299121
Node: Bash Conditional Expressions302882
Node: Shell Arithmetic308099
Node: Aliases311438
Node: Arrays314400
Node: The Directory Stack321463
Node: Directory Stack Builtins322260
Node: Controlling the Prompt326705
Node: The Restricted Shell329589
Node: Bash POSIX Mode332471
Node: Shell Compatibility Mode350612
Node: Job Control359623
Node: Job Control Basics360080
Node: Job Control Builtins365388
Node: Job Control Variables371556
Node: Command Line Editing372724
Node: Introduction and Notation374427
Node: Readline Interaction376777
Node: Readline Bare Essentials377965
Node: Readline Movement Commands379773
Node: Readline Killing Commands380769
Node: Readline Arguments382792
Node: Searching383849
Node: Readline Init File386110
Node: Readline Init File Syntax387414
Node: Conditional Init Constructs414134
Node: Sample Init File418519
Node: Bindable Readline Commands421640
Node: Commands For Moving423112
Node: Commands For History425339
Node: Commands For Text430592
Node: Commands For Killing434651
Node: Numeric Arguments437439
Node: Commands For Completion438591
Node: Keyboard Macros443091
Node: Miscellaneous Commands443792
Node: Readline vi Mode450345
Node: Programmable Completion451322
Node: Programmable Completion Builtins459374
Node: A Programmable Completion Example471039
Node: Using History Interactively476384
Node: Bash History Facilities477065
Node: Bash History Builtins480800
Node: History Interaction487271
Node: Event Designators492225
Node: Word Designators493803
Node: Modifiers496111
Node: Installing Bash498052
Node: Basic Installation499168
Node: Compilers and Options503044
Node: Compiling For Multiple Architectures503794
Node: Installation Names505543
Node: Specifying the System Type507777
Node: Sharing Defaults508523
Node: Operation Controls509237
Node: Optional Features510256
Node: Reporting Bugs522636
Node: Major Differences From The Bourne Shell523994
Node: GNU Free Documentation License545414
Node: Indexes570591
Node: Builtin Index571042
Node: Reserved Word Index578140
Node: Variable Index580585
Node: Function Index597998
Node: Concept Index611854
Node: Shell Parameter Expansion81633
Node: Command Substitution101401
Node: Arithmetic Expansion104934
Node: Process Substitution105947
Node: Word Splitting107063
Node: Filename Expansion109160
Node: Pattern Matching112428
Node: Quote Removal117762
Node: Redirections118066
Node: Executing Commands128281
Node: Simple Command Expansion128948
Node: Command Search and Execution131056
Node: Command Execution Environment133500
Node: Environment136948
Node: Exit Status138851
Node: Signals140909
Node: Shell Scripts144807
Node: Shell Builtin Commands148105
Node: Bourne Shell Builtins150216
Node: Bash Builtins176517
Node: Modifying Shell Behavior212965
Node: The Set Builtin213307
Node: The Shopt Builtin225243
Node: Special Builtins242295
Node: Shell Variables243284
Node: Bourne Shell Variables243718
Node: Bash Variables246226
Node: Bash Features284483
Node: Invoking Bash285497
Node: Bash Startup Files291923
Node: Interactive Shells297236
Node: What is an Interactive Shell?297644
Node: Is this Shell Interactive?298306
Node: Interactive Shell Behavior299130
Node: Bash Conditional Expressions302891
Node: Shell Arithmetic308108
Node: Aliases311447
Node: Arrays314582
Node: The Directory Stack321645
Node: Directory Stack Builtins322442
Node: Controlling the Prompt326887
Node: The Restricted Shell329771
Node: Bash POSIX Mode332653
Node: Shell Compatibility Mode350794
Node: Job Control359805
Node: Job Control Basics360262
Node: Job Control Builtins366538
Node: Job Control Variables373220
Node: Command Line Editing374451
Node: Introduction and Notation376154
Node: Readline Interaction378504
Node: Readline Bare Essentials379692
Node: Readline Movement Commands381500
Node: Readline Killing Commands382496
Node: Readline Arguments384519
Node: Searching385576
Node: Readline Init File387837
Node: Readline Init File Syntax389141
Node: Conditional Init Constructs415887
Node: Sample Init File420272
Node: Bindable Readline Commands423393
Node: Commands For Moving424865
Node: Commands For History427092
Node: Commands For Text432345
Node: Commands For Killing436470
Node: Numeric Arguments439258
Node: Commands For Completion440410
Node: Keyboard Macros444910
Node: Miscellaneous Commands445611
Node: Readline vi Mode452164
Node: Programmable Completion453141
Node: Programmable Completion Builtins461193
Node: A Programmable Completion Example472858
Node: Using History Interactively478203
Node: Bash History Facilities478884
Node: Bash History Builtins482619
Node: History Interaction489090
Node: Event Designators494044
Node: Word Designators495622
Node: Modifiers497930
Node: Installing Bash499871
Node: Basic Installation500987
Node: Compilers and Options504863
Node: Compiling For Multiple Architectures505613
Node: Installation Names507362
Node: Specifying the System Type509596
Node: Sharing Defaults510342
Node: Operation Controls511056
Node: Optional Features512075
Node: Reporting Bugs524455
Node: Major Differences From The Bourne Shell525813
Node: GNU Free Documentation License547233
Node: Indexes572410
Node: Builtin Index572861
Node: Reserved Word Index579959
Node: Variable Index582404
Node: Function Index599817
Node: Concept Index613673

End Tag Table
BIN
View File
Binary file not shown.
+51 -51
View File
@@ -237,154 +237,154 @@
@xrdef{Job Control Builtins-pg}{124}
@xrdef{Job Control Variables-title}{Job Control Variables}
@xrdef{Job Control Variables-snt}{Section@tie 7.3}
@xrdef{Job Control Variables-pg}{126}
@xrdef{Job Control Variables-pg}{127}
@xrdef{Command Line Editing-title}{Command Line Editing}
@xrdef{Command Line Editing-snt}{Chapter@tie 8}
@xrdef{Introduction and Notation-title}{Introduction to Line Editing}
@xrdef{Introduction and Notation-snt}{Section@tie 8.1}
@xrdef{Readline Interaction-title}{Readline Interaction}
@xrdef{Readline Interaction-snt}{Section@tie 8.2}
@xrdef{Command Line Editing-pg}{127}
@xrdef{Introduction and Notation-pg}{127}
@xrdef{Readline Interaction-pg}{127}
@xrdef{Command Line Editing-pg}{128}
@xrdef{Introduction and Notation-pg}{128}
@xrdef{Readline Interaction-pg}{128}
@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
@xrdef{Readline Bare Essentials-snt}{Section@tie 8.2.1}
@xrdef{Readline Movement Commands-title}{Readline Movement Commands}
@xrdef{Readline Movement Commands-snt}{Section@tie 8.2.2}
@xrdef{Readline Bare Essentials-pg}{128}
@xrdef{Readline Movement Commands-pg}{128}
@xrdef{Readline Bare Essentials-pg}{129}
@xrdef{Readline Movement Commands-pg}{129}
@xrdef{Readline Killing Commands-title}{Readline Killing Commands}
@xrdef{Readline Killing Commands-snt}{Section@tie 8.2.3}
@xrdef{Readline Arguments-title}{Readline Arguments}
@xrdef{Readline Arguments-snt}{Section@tie 8.2.4}
@xrdef{Searching-title}{Searching for Commands in the History}
@xrdef{Searching-snt}{Section@tie 8.2.5}
@xrdef{Readline Killing Commands-pg}{129}
@xrdef{Readline Arguments-pg}{129}
@xrdef{Readline Killing Commands-pg}{130}
@xrdef{Readline Arguments-pg}{130}
@xrdef{Readline Init File-title}{Readline Init File}
@xrdef{Readline Init File-snt}{Section@tie 8.3}
@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax}
@xrdef{Readline Init File Syntax-snt}{Section@tie 8.3.1}
@xrdef{Searching-pg}{130}
@xrdef{Readline Init File-pg}{130}
@xrdef{Readline Init File Syntax-pg}{130}
@xrdef{Searching-pg}{131}
@xrdef{Readline Init File-pg}{131}
@xrdef{Readline Init File Syntax-pg}{131}
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
@xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
@xrdef{Conditional Init Constructs-pg}{140}
@xrdef{Conditional Init Constructs-pg}{141}
@xrdef{Sample Init File-title}{Sample Init File}
@xrdef{Sample Init File-snt}{Section@tie 8.3.3}
@xrdef{Sample Init File-pg}{141}
@xrdef{Sample Init File-pg}{142}
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
@xrdef{Bindable Readline Commands-snt}{Section@tie 8.4}
@xrdef{Commands For Moving-title}{Commands For Moving}
@xrdef{Commands For Moving-snt}{Section@tie 8.4.1}
@xrdef{Bindable Readline Commands-pg}{144}
@xrdef{Commands For Moving-pg}{144}
@xrdef{Bindable Readline Commands-pg}{145}
@xrdef{Commands For Moving-pg}{145}
@xrdef{Commands For History-title}{Commands For Manipulating The History}
@xrdef{Commands For History-snt}{Section@tie 8.4.2}
@xrdef{Commands For History-pg}{145}
@xrdef{Commands For History-pg}{146}
@xrdef{Commands For Text-title}{Commands For Changing Text}
@xrdef{Commands For Text-snt}{Section@tie 8.4.3}
@xrdef{Commands For Text-pg}{147}
@xrdef{Commands For Text-pg}{148}
@xrdef{Commands For Killing-title}{Killing And Yanking}
@xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
@xrdef{Commands For Killing-pg}{148}
@xrdef{Commands For Killing-pg}{149}
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
@xrdef{Numeric Arguments-snt}{Section@tie 8.4.5}
@xrdef{Commands For Completion-title}{Letting Readline Type For You}
@xrdef{Commands For Completion-snt}{Section@tie 8.4.6}
@xrdef{Numeric Arguments-pg}{150}
@xrdef{Commands For Completion-pg}{150}
@xrdef{Numeric Arguments-pg}{151}
@xrdef{Commands For Completion-pg}{151}
@xrdef{Keyboard Macros-title}{Keyboard Macros}
@xrdef{Keyboard Macros-snt}{Section@tie 8.4.7}
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
@xrdef{Miscellaneous Commands-snt}{Section@tie 8.4.8}
@xrdef{Keyboard Macros-pg}{152}
@xrdef{Miscellaneous Commands-pg}{152}
@xrdef{Keyboard Macros-pg}{153}
@xrdef{Miscellaneous Commands-pg}{153}
@xrdef{Readline vi Mode-title}{Readline vi Mode}
@xrdef{Readline vi Mode-snt}{Section@tie 8.5}
@xrdef{Programmable Completion-title}{Programmable Completion}
@xrdef{Programmable Completion-snt}{Section@tie 8.6}
@xrdef{Readline vi Mode-pg}{155}
@xrdef{Programmable Completion-pg}{155}
@xrdef{Readline vi Mode-pg}{156}
@xrdef{Programmable Completion-pg}{156}
@xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
@xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
@xrdef{Programmable Completion Builtins-pg}{157}
@xrdef{Programmable Completion Builtins-pg}{158}
@xrdef{A Programmable Completion Example-title}{A Programmable Completion Example}
@xrdef{A Programmable Completion Example-snt}{Section@tie 8.8}
@xrdef{A Programmable Completion Example-pg}{161}
@xrdef{A Programmable Completion Example-pg}{162}
@xrdef{Using History Interactively-title}{Using History Interactively}
@xrdef{Using History Interactively-snt}{Chapter@tie 9}
@xrdef{Bash History Facilities-title}{Bash History Facilities}
@xrdef{Bash History Facilities-snt}{Section@tie 9.1}
@xrdef{Using History Interactively-pg}{164}
@xrdef{Bash History Facilities-pg}{164}
@xrdef{Using History Interactively-pg}{165}
@xrdef{Bash History Facilities-pg}{165}
@xrdef{Bash History Builtins-title}{Bash History Builtins}
@xrdef{Bash History Builtins-snt}{Section@tie 9.2}
@xrdef{Bash History Builtins-pg}{165}
@xrdef{Bash History Builtins-pg}{166}
@xrdef{History Interaction-title}{History Expansion}
@xrdef{History Interaction-snt}{Section@tie 9.3}
@xrdef{History Interaction-pg}{167}
@xrdef{History Interaction-pg}{168}
@xrdef{Event Designators-title}{Event Designators}
@xrdef{Event Designators-snt}{Section@tie 9.3.1}
@xrdef{Event Designators-pg}{168}
@xrdef{Event Designators-pg}{169}
@xrdef{Word Designators-title}{Word Designators}
@xrdef{Word Designators-snt}{Section@tie 9.3.2}
@xrdef{Modifiers-title}{Modifiers}
@xrdef{Modifiers-snt}{Section@tie 9.3.3}
@xrdef{Word Designators-pg}{169}
@xrdef{Modifiers-pg}{170}
@xrdef{Word Designators-pg}{170}
@xrdef{Modifiers-pg}{171}
@xrdef{Installing Bash-title}{Installing Bash}
@xrdef{Installing Bash-snt}{Chapter@tie 10}
@xrdef{Basic Installation-title}{Basic Installation}
@xrdef{Basic Installation-snt}{Section@tie 10.1}
@xrdef{Installing Bash-pg}{171}
@xrdef{Basic Installation-pg}{171}
@xrdef{Installing Bash-pg}{172}
@xrdef{Basic Installation-pg}{172}
@xrdef{Compilers and Options-title}{Compilers and Options}
@xrdef{Compilers and Options-snt}{Section@tie 10.2}
@xrdef{Compiling For Multiple Architectures-title}{Compiling For Multiple Architectures}
@xrdef{Compiling For Multiple Architectures-snt}{Section@tie 10.3}
@xrdef{Installation Names-title}{Installation Names}
@xrdef{Installation Names-snt}{Section@tie 10.4}
@xrdef{Compilers and Options-pg}{172}
@xrdef{Compiling For Multiple Architectures-pg}{172}
@xrdef{Compilers and Options-pg}{173}
@xrdef{Compiling For Multiple Architectures-pg}{173}
@xrdef{Specifying the System Type-title}{Specifying the System Type}
@xrdef{Specifying the System Type-snt}{Section@tie 10.5}
@xrdef{Sharing Defaults-title}{Sharing Defaults}
@xrdef{Sharing Defaults-snt}{Section@tie 10.6}
@xrdef{Operation Controls-title}{Operation Controls}
@xrdef{Operation Controls-snt}{Section@tie 10.7}
@xrdef{Installation Names-pg}{173}
@xrdef{Specifying the System Type-pg}{173}
@xrdef{Sharing Defaults-pg}{173}
@xrdef{Installation Names-pg}{174}
@xrdef{Specifying the System Type-pg}{174}
@xrdef{Sharing Defaults-pg}{174}
@xrdef{Optional Features-title}{Optional Features}
@xrdef{Optional Features-snt}{Section@tie 10.8}
@xrdef{Operation Controls-pg}{174}
@xrdef{Optional Features-pg}{174}
@xrdef{Operation Controls-pg}{175}
@xrdef{Optional Features-pg}{175}
@xrdef{Reporting Bugs-title}{Reporting Bugs}
@xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
@xrdef{Reporting Bugs-pg}{180}
@xrdef{Reporting Bugs-pg}{181}
@xrdef{Major Differences From The Bourne Shell-title}{Major Differences From The Bourne Shell}
@xrdef{Major Differences From The Bourne Shell-snt}{Appendix@tie @char66{}}
@xrdef{Major Differences From The Bourne Shell-pg}{181}
@xrdef{Major Differences From The Bourne Shell-pg}{182}
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char67{}}
@xrdef{GNU Free Documentation License-pg}{188}
@xrdef{GNU Free Documentation License-pg}{189}
@xrdef{Indexes-title}{Indexes}
@xrdef{Indexes-snt}{Appendix@tie @char68{}}
@xrdef{Builtin Index-title}{Index of Shell Builtin Commands}
@xrdef{Builtin Index-snt}{Section@tie @char68.1}
@xrdef{Indexes-pg}{196}
@xrdef{Builtin Index-pg}{196}
@xrdef{Indexes-pg}{197}
@xrdef{Builtin Index-pg}{197}
@xrdef{Reserved Word Index-title}{Index of Shell Reserved Words}
@xrdef{Reserved Word Index-snt}{Section@tie @char68.2}
@xrdef{Variable Index-title}{Parameter and Variable Index}
@xrdef{Variable Index-snt}{Section@tie @char68.3}
@xrdef{Reserved Word Index-pg}{197}
@xrdef{Variable Index-pg}{198}
@xrdef{Reserved Word Index-pg}{198}
@xrdef{Variable Index-pg}{199}
@xrdef{Function Index-title}{Function Index}
@xrdef{Function Index-snt}{Section@tie @char68.4}
@xrdef{Function Index-pg}{200}
@xrdef{Function Index-pg}{201}
@xrdef{Concept Index-title}{Concept Index}
@xrdef{Concept Index-snt}{Section@tie @char68.5}
@xrdef{Concept Index-pg}{202}
@xrdef{Concept Index-pg}{203}
+8 -8
View File
@@ -48,14 +48,14 @@
\entry{popd}{110}{\code {popd}}
\entry{pushd}{111}{\code {pushd}}
\entry{bg}{124}{\code {bg}}
\entry{fg}{124}{\code {fg}}
\entry{jobs}{124}{\code {jobs}}
\entry{fg}{125}{\code {fg}}
\entry{jobs}{125}{\code {jobs}}
\entry{kill}{125}{\code {kill}}
\entry{wait}{125}{\code {wait}}
\entry{wait}{126}{\code {wait}}
\entry{disown}{126}{\code {disown}}
\entry{suspend}{126}{\code {suspend}}
\entry{compgen}{157}{\code {compgen}}
\entry{complete}{158}{\code {complete}}
\entry{compopt}{161}{\code {compopt}}
\entry{fc}{165}{\code {fc}}
\entry{history}{165}{\code {history}}
\entry{compgen}{158}{\code {compgen}}
\entry{complete}{159}{\code {complete}}
\entry{compopt}{162}{\code {compopt}}
\entry{fc}{166}{\code {fc}}
\entry{history}{166}{\code {history}}
+8 -8
View File
@@ -15,9 +15,9 @@
\entry{\code {caller}}{61}
\entry{\code {cd}}{51}
\entry{\code {command}}{61}
\entry{\code {compgen}}{157}
\entry{\code {complete}}{158}
\entry{\code {compopt}}{161}
\entry{\code {compgen}}{158}
\entry{\code {complete}}{159}
\entry{\code {compopt}}{162}
\entry{\code {continue}}{52}
\initial {D}
\entry{\code {declare}}{62}
@@ -32,16 +32,16 @@
\entry{\code {export}}{52}
\initial {F}
\entry{\code {false}}{53}
\entry{\code {fc}}{165}
\entry{\code {fg}}{124}
\entry{\code {fc}}{166}
\entry{\code {fg}}{125}
\initial {G}
\entry{\code {getopts}}{53}
\initial {H}
\entry{\code {hash}}{54}
\entry{\code {help}}{65}
\entry{\code {history}}{165}
\entry{\code {history}}{166}
\initial {J}
\entry{\code {jobs}}{124}
\entry{\code {jobs}}{125}
\initial {K}
\entry{\code {kill}}{125}
\initial {L}
@@ -79,4 +79,4 @@
\entry{\code {unalias}}{71}
\entry{\code {unset}}{58}
\initial {W}
\entry{\code {wait}}{125}
\entry{\code {wait}}{126}
+23 -23
View File
@@ -105,26 +105,26 @@
\entry{foreground}{123}{foreground}
\entry{background}{123}{background}
\entry{suspending jobs}{123}{suspending jobs}
\entry{Readline, how to use}{126}{Readline, how to use}
\entry{interaction, readline}{127}{interaction, readline}
\entry{notation, readline}{128}{notation, readline}
\entry{command editing}{128}{command editing}
\entry{editing command lines}{128}{editing command lines}
\entry{killing text}{129}{killing text}
\entry{yanking text}{129}{yanking text}
\entry{kill ring}{129}{kill ring}
\entry{initialization file, readline}{130}{initialization file, readline}
\entry{variables, readline}{131}{variables, readline}
\entry{programmable completion}{155}{programmable completion}
\entry{completion builtins}{157}{completion builtins}
\entry{History, how to use}{163}{History, how to use}
\entry{command history}{164}{command history}
\entry{history list}{164}{history list}
\entry{history builtins}{165}{history builtins}
\entry{history expansion}{167}{history expansion}
\entry{event designators}{168}{event designators}
\entry{history events}{168}{history events}
\entry{installation}{171}{installation}
\entry{configuration}{171}{configuration}
\entry{Bash installation}{171}{Bash installation}
\entry{Bash configuration}{171}{Bash configuration}
\entry{Readline, how to use}{127}{Readline, how to use}
\entry{interaction, readline}{128}{interaction, readline}
\entry{notation, readline}{129}{notation, readline}
\entry{command editing}{129}{command editing}
\entry{editing command lines}{129}{editing command lines}
\entry{killing text}{130}{killing text}
\entry{yanking text}{130}{yanking text}
\entry{kill ring}{130}{kill ring}
\entry{initialization file, readline}{131}{initialization file, readline}
\entry{variables, readline}{132}{variables, readline}
\entry{programmable completion}{156}{programmable completion}
\entry{completion builtins}{158}{completion builtins}
\entry{History, how to use}{164}{History, how to use}
\entry{command history}{165}{command history}
\entry{history list}{165}{history list}
\entry{history builtins}{166}{history builtins}
\entry{history expansion}{168}{history expansion}
\entry{event designators}{169}{event designators}
\entry{history events}{169}{history events}
\entry{installation}{172}{installation}
\entry{configuration}{172}{configuration}
\entry{Bash installation}{172}{Bash installation}
\entry{Bash configuration}{172}{Bash configuration}
+23 -23
View File
@@ -7,18 +7,18 @@
\entry{arrays}{108}
\initial {B}
\entry{background}{123}
\entry{Bash configuration}{171}
\entry{Bash installation}{171}
\entry{Bash configuration}{172}
\entry{Bash installation}{172}
\entry{binary arithmetic operators}{106}
\entry{bitwise arithmetic operators}{106}
\entry{Bourne shell}{5}
\entry{brace expansion}{25}
\entry{builtin}{3}
\initial {C}
\entry{command editing}{128}
\entry{command editing}{129}
\entry{command execution}{44}
\entry{command expansion}{44}
\entry{command history}{164}
\entry{command history}{165}
\entry{command search}{44}
\entry{command substitution}{35}
\entry{command timing}{10}
@@ -33,19 +33,19 @@
\entry{comments, shell}{9}
\entry{Compatibility Level}{119}
\entry{Compatibility Mode}{119}
\entry{completion builtins}{157}
\entry{completion builtins}{158}
\entry{conditional arithmetic operator}{106}
\entry{configuration}{171}
\entry{configuration}{172}
\entry{control operator}{3}
\entry{coprocess}{18}
\initial {D}
\entry{directory stack}{110}
\entry{dollar-single quote quoting}{6}
\initial {E}
\entry{editing command lines}{128}
\entry{editing command lines}{129}
\entry{environment}{46}
\entry{evaluation, arithmetic}{105}
\entry{event designators}{168}
\entry{event designators}{169}
\entry{execution environment}{45}
\entry{exit status}{3, 47}
\entry{expansion}{24}
@@ -64,16 +64,16 @@
\entry{foreground}{123}
\entry{functions, shell}{19}
\initial {H}
\entry{history builtins}{165}
\entry{history events}{168}
\entry{history expansion}{167}
\entry{history list}{164}
\entry{History, how to use}{163}
\entry{history builtins}{166}
\entry{history events}{169}
\entry{history expansion}{168}
\entry{history list}{165}
\entry{History, how to use}{164}
\initial {I}
\entry{identifier}{3}
\entry{initialization file, readline}{130}
\entry{installation}{171}
\entry{interaction, readline}{127}
\entry{initialization file, readline}{131}
\entry{installation}{172}
\entry{interaction, readline}{128}
\entry{interactive shell}{100, 102}
\entry{internationalization}{7}
\entry{internationalized scripts}{8}
@@ -81,8 +81,8 @@
\entry{job}{3}
\entry{job control}{3, 123}
\initial {K}
\entry{kill ring}{129}
\entry{killing text}{129}
\entry{kill ring}{130}
\entry{killing text}{130}
\initial {L}
\entry{localization}{7}
\entry{login shell}{100}
@@ -92,7 +92,7 @@
\initial {N}
\entry{name}{3}
\entry{native languages}{7}
\entry{notation, readline}{128}
\entry{notation, readline}{129}
\initial {O}
\entry{operator, shell}{3}
\initial {P}
@@ -109,13 +109,13 @@
\entry{process group}{3}
\entry{process group ID}{3}
\entry{process substitution}{36}
\entry{programmable completion}{155}
\entry{programmable completion}{156}
\entry{prompting}{111}
\initial {Q}
\entry{quoting}{6}
\entry{quoting, ANSI}{6}
\initial {R}
\entry{Readline, how to use}{126}
\entry{Readline, how to use}{127}
\entry{redirection}{40}
\entry{reserved word}{3}
\entry{reserved words}{9}
@@ -141,9 +141,9 @@
\entry{unary arithmetic operators}{106}
\initial {V}
\entry{variable, shell}{22}
\entry{variables, readline}{131}
\entry{variables, readline}{132}
\initial {W}
\entry{word}{4}
\entry{word splitting}{37}
\initial {Y}
\entry{yanking text}{129}
\entry{yanking text}{130}
BIN
View File
Binary file not shown.
+115 -115
View File
@@ -1,115 +1,115 @@
\entry{beginning-of-line (C-a)}{144}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{144}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{144}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{144}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{144}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{144}{\code {backward-word (M-b)}}
\entry{shell-forward-word (M-C-f)}{144}{\code {shell-forward-word (M-C-f)}}
\entry{shell-backward-word (M-C-b)}{144}{\code {shell-backward-word (M-C-b)}}
\entry{previous-screen-line ()}{145}{\code {previous-screen-line ()}}
\entry{next-screen-line ()}{145}{\code {next-screen-line ()}}
\entry{clear-display (M-C-l)}{145}{\code {clear-display (M-C-l)}}
\entry{clear-screen (C-l)}{145}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{145}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{145}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{145}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{145}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{145}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{145}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{145}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{145}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{146}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{146}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-backward ()}{146}{\code {history-search-backward ()}}
\entry{history-search-forward ()}{146}{\code {history-search-forward ()}}
\entry{history-substring-search-backward ()}{146}{\code {history-substring-search-backward ()}}
\entry{history-substring-search-forward ()}{146}{\code {history-substring-search-forward ()}}
\entry{yank-nth-arg (M-C-y)}{146}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{146}{\code {yank-last-arg (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{147}{\code {operate-and-get-next (C-o)}}
\entry{fetch-history ()}{147}{\code {fetch-history ()}}
\entry{end-of-file (usually C-d)}{147}{\code {\i {end-of-file} (usually C-d)}}
\entry{delete-char (C-d)}{147}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{147}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{147}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{147}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{147}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{bracketed-paste-begin ()}{147}{\code {bracketed-paste-begin ()}}
\entry{transpose-chars (C-t)}{148}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{148}{\code {transpose-words (M-t)}}
\entry{shell-transpose-words (M-C-t)}{148}{\code {shell-transpose-words (M-C-t)}}
\entry{upcase-word (M-u)}{148}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{148}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{148}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{148}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{148}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{148}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{148}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{149}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{149}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{149}{\code {backward-kill-word (M-\key {DEL})}}
\entry{shell-kill-word (M-C-d)}{149}{\code {shell-kill-word (M-C-d)}}
\entry{shell-backward-kill-word ()}{149}{\code {shell-backward-kill-word ()}}
\entry{unix-word-rubout (C-w)}{149}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{149}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{149}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{149}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{149}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{149}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{149}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{149}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{149}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{150}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{150}{\code {universal-argument ()}}
\entry{complete (TAB)}{150}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{150}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{150}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{150}{\code {menu-complete ()}}
\entry{menu-complete-backward ()}{151}{\code {menu-complete-backward ()}}
\entry{delete-char-or-list ()}{151}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{151}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{151}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{151}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{151}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{151}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{151}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{151}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{151}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{151}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{151}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{151}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{dabbrev-expand ()}{151}{\code {dabbrev-expand ()}}
\entry{complete-into-braces (M-{\indexlbrace })}{152}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{152}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{152}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{152}{\code {call-last-kbd-macro (C-x e)}}
\entry{print-last-kbd-macro ()}{152}{\code {print-last-kbd-macro ()}}
\entry{re-read-init-file (C-x C-r)}{152}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{152}{\code {abort (C-g)}}
\entry{do-lowercase-version (M-A, M-B, M-x, ...{})}{152}{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{152}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{152}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{152}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{152}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{152}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{152}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{153}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{153}{\code {character-search-backward (M-C-])}}
\entry{skip-csi-sequence ()}{153}{\code {skip-csi-sequence ()}}
\entry{insert-comment (M-#)}{153}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{153}{\code {dump-functions ()}}
\entry{dump-variables ()}{153}{\code {dump-variables ()}}
\entry{dump-macros ()}{153}{\code {dump-macros ()}}
\entry{execute-named-command (M-x)}{153}{\code {execute-named-command (M-x)}}
\entry{spell-correct-word (C-x s)}{154}{\code {spell-correct-word (C-x s)}}
\entry{glob-complete-word (M-g)}{154}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{154}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{154}{\code {glob-list-expansions (C-x g)}}
\entry{shell-expand-line (M-C-e)}{154}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{154}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{154}{\code {magic-space ()}}
\entry{alias-expand-line ()}{154}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{154}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{154}{\code {insert-last-argument (M-. or M-_)}}
\entry{edit-and-execute-command (C-x C-e)}{154}{\code {edit-and-execute-command (C-x C-e)}}
\entry{display-shell-version (C-x C-v)}{154}{\code {display-shell-version (C-x C-v)}}
\entry{beginning-of-line (C-a)}{145}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{145}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{145}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{145}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{145}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{145}{\code {backward-word (M-b)}}
\entry{shell-forward-word (M-C-f)}{145}{\code {shell-forward-word (M-C-f)}}
\entry{shell-backward-word (M-C-b)}{145}{\code {shell-backward-word (M-C-b)}}
\entry{previous-screen-line ()}{146}{\code {previous-screen-line ()}}
\entry{next-screen-line ()}{146}{\code {next-screen-line ()}}
\entry{clear-display (M-C-l)}{146}{\code {clear-display (M-C-l)}}
\entry{clear-screen (C-l)}{146}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{146}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{146}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{146}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{146}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{146}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{146}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{146}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{146}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{147}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{147}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-backward ()}{147}{\code {history-search-backward ()}}
\entry{history-search-forward ()}{147}{\code {history-search-forward ()}}
\entry{history-substring-search-backward ()}{147}{\code {history-substring-search-backward ()}}
\entry{history-substring-search-forward ()}{147}{\code {history-substring-search-forward ()}}
\entry{yank-nth-arg (M-C-y)}{147}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{147}{\code {yank-last-arg (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{148}{\code {operate-and-get-next (C-o)}}
\entry{fetch-history ()}{148}{\code {fetch-history ()}}
\entry{end-of-file (usually C-d)}{148}{\code {\i {end-of-file} (usually C-d)}}
\entry{delete-char (C-d)}{148}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{148}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{148}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{148}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{148}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{bracketed-paste-begin ()}{148}{\code {bracketed-paste-begin ()}}
\entry{transpose-chars (C-t)}{149}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{149}{\code {transpose-words (M-t)}}
\entry{shell-transpose-words (M-C-t)}{149}{\code {shell-transpose-words (M-C-t)}}
\entry{upcase-word (M-u)}{149}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{149}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{149}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{149}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{149}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{149}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{149}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{150}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{150}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{150}{\code {backward-kill-word (M-\key {DEL})}}
\entry{shell-kill-word (M-C-d)}{150}{\code {shell-kill-word (M-C-d)}}
\entry{shell-backward-kill-word ()}{150}{\code {shell-backward-kill-word ()}}
\entry{unix-word-rubout (C-w)}{150}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{150}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{150}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{150}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{150}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{150}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{150}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{150}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{150}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{151}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{151}{\code {universal-argument ()}}
\entry{complete (TAB)}{151}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{151}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{151}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{151}{\code {menu-complete ()}}
\entry{menu-complete-backward ()}{152}{\code {menu-complete-backward ()}}
\entry{delete-char-or-list ()}{152}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{152}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{152}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{152}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{152}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{152}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{152}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{152}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{152}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{152}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{152}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{152}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{dabbrev-expand ()}{152}{\code {dabbrev-expand ()}}
\entry{complete-into-braces (M-{\indexlbrace })}{153}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{153}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{153}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{153}{\code {call-last-kbd-macro (C-x e)}}
\entry{print-last-kbd-macro ()}{153}{\code {print-last-kbd-macro ()}}
\entry{re-read-init-file (C-x C-r)}{153}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{153}{\code {abort (C-g)}}
\entry{do-lowercase-version (M-A, M-B, M-x, ...{})}{153}{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{153}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{153}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{153}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{153}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{153}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{153}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{154}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{154}{\code {character-search-backward (M-C-])}}
\entry{skip-csi-sequence ()}{154}{\code {skip-csi-sequence ()}}
\entry{insert-comment (M-#)}{154}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{154}{\code {dump-functions ()}}
\entry{dump-variables ()}{154}{\code {dump-variables ()}}
\entry{dump-macros ()}{154}{\code {dump-macros ()}}
\entry{execute-named-command (M-x)}{154}{\code {execute-named-command (M-x)}}
\entry{spell-correct-word (C-x s)}{155}{\code {spell-correct-word (C-x s)}}
\entry{glob-complete-word (M-g)}{155}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{155}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{155}{\code {glob-list-expansions (C-x g)}}
\entry{shell-expand-line (M-C-e)}{155}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{155}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{155}{\code {magic-space ()}}
\entry{alias-expand-line ()}{155}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{155}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{155}{\code {insert-last-argument (M-. or M-_)}}
\entry{edit-and-execute-command (C-x C-e)}{155}{\code {edit-and-execute-command (C-x C-e)}}
\entry{display-shell-version (C-x C-v)}{155}{\code {display-shell-version (C-x C-v)}}
+115 -115
View File
@@ -1,135 +1,135 @@
\initial {A}
\entry{\code {abort (C-g)}}{152}
\entry{\code {accept-line (Newline or Return)}}{145}
\entry{\code {alias-expand-line ()}}{154}
\entry{\code {abort (C-g)}}{153}
\entry{\code {accept-line (Newline or Return)}}{146}
\entry{\code {alias-expand-line ()}}{155}
\initial {B}
\entry{\code {backward-char (C-b)}}{144}
\entry{\code {backward-delete-char (Rubout)}}{147}
\entry{\code {backward-kill-line (C-x Rubout)}}{148}
\entry{\code {backward-kill-word (M-\key {DEL})}}{149}
\entry{\code {backward-word (M-b)}}{144}
\entry{\code {beginning-of-history (M-<)}}{145}
\entry{\code {beginning-of-line (C-a)}}{144}
\entry{\code {bracketed-paste-begin ()}}{147}
\entry{\code {backward-char (C-b)}}{145}
\entry{\code {backward-delete-char (Rubout)}}{148}
\entry{\code {backward-kill-line (C-x Rubout)}}{149}
\entry{\code {backward-kill-word (M-\key {DEL})}}{150}
\entry{\code {backward-word (M-b)}}{145}
\entry{\code {beginning-of-history (M-<)}}{146}
\entry{\code {beginning-of-line (C-a)}}{145}
\entry{\code {bracketed-paste-begin ()}}{148}
\initial {C}
\entry{\code {call-last-kbd-macro (C-x e)}}{152}
\entry{\code {capitalize-word (M-c)}}{148}
\entry{\code {character-search (C-])}}{153}
\entry{\code {character-search-backward (M-C-])}}{153}
\entry{\code {clear-display (M-C-l)}}{145}
\entry{\code {clear-screen (C-l)}}{145}
\entry{\code {complete (\key {TAB})}}{150}
\entry{\code {complete-command (M-!)}}{151}
\entry{\code {complete-filename (M-/)}}{151}
\entry{\code {complete-hostname (M-@)}}{151}
\entry{\code {complete-into-braces (M-{\tt \char 123})}}{152}
\entry{\code {complete-username (M-~)}}{151}
\entry{\code {complete-variable (M-$)}}{151}
\entry{\code {copy-backward-word ()}}{149}
\entry{\code {copy-forward-word ()}}{149}
\entry{\code {copy-region-as-kill ()}}{149}
\entry{\code {call-last-kbd-macro (C-x e)}}{153}
\entry{\code {capitalize-word (M-c)}}{149}
\entry{\code {character-search (C-])}}{154}
\entry{\code {character-search-backward (M-C-])}}{154}
\entry{\code {clear-display (M-C-l)}}{146}
\entry{\code {clear-screen (C-l)}}{146}
\entry{\code {complete (\key {TAB})}}{151}
\entry{\code {complete-command (M-!)}}{152}
\entry{\code {complete-filename (M-/)}}{152}
\entry{\code {complete-hostname (M-@)}}{152}
\entry{\code {complete-into-braces (M-{\tt \char 123})}}{153}
\entry{\code {complete-username (M-~)}}{152}
\entry{\code {complete-variable (M-$)}}{152}
\entry{\code {copy-backward-word ()}}{150}
\entry{\code {copy-forward-word ()}}{150}
\entry{\code {copy-region-as-kill ()}}{150}
\initial {D}
\entry{\code {dabbrev-expand ()}}{151}
\entry{\code {delete-char (C-d)}}{147}
\entry{\code {delete-char-or-list ()}}{151}
\entry{\code {delete-horizontal-space ()}}{149}
\entry{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{150}
\entry{\code {display-shell-version (C-x C-v)}}{154}
\entry{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}{152}
\entry{\code {downcase-word (M-l)}}{148}
\entry{\code {dump-functions ()}}{153}
\entry{\code {dump-macros ()}}{153}
\entry{\code {dump-variables ()}}{153}
\entry{\code {dynamic-complete-history (M-\key {TAB})}}{151}
\entry{\code {dabbrev-expand ()}}{152}
\entry{\code {delete-char (C-d)}}{148}
\entry{\code {delete-char-or-list ()}}{152}
\entry{\code {delete-horizontal-space ()}}{150}
\entry{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{151}
\entry{\code {display-shell-version (C-x C-v)}}{155}
\entry{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}{153}
\entry{\code {downcase-word (M-l)}}{149}
\entry{\code {dump-functions ()}}{154}
\entry{\code {dump-macros ()}}{154}
\entry{\code {dump-variables ()}}{154}
\entry{\code {dynamic-complete-history (M-\key {TAB})}}{152}
\initial {E}
\entry{\code {edit-and-execute-command (C-x C-e)}}{154}
\entry{\code {end-kbd-macro (C-x ))}}{152}
\entry{\code {\i {end-of-file} (usually C-d)}}{147}
\entry{\code {end-of-history (M->)}}{145}
\entry{\code {end-of-line (C-e)}}{144}
\entry{\code {exchange-point-and-mark (C-x C-x)}}{152}
\entry{\code {execute-named-command (M-x)}}{153}
\entry{\code {edit-and-execute-command (C-x C-e)}}{155}
\entry{\code {end-kbd-macro (C-x ))}}{153}
\entry{\code {\i {end-of-file} (usually C-d)}}{148}
\entry{\code {end-of-history (M->)}}{146}
\entry{\code {end-of-line (C-e)}}{145}
\entry{\code {exchange-point-and-mark (C-x C-x)}}{153}
\entry{\code {execute-named-command (M-x)}}{154}
\initial {F}
\entry{\code {fetch-history ()}}{147}
\entry{\code {forward-backward-delete-char ()}}{147}
\entry{\code {forward-char (C-f)}}{144}
\entry{\code {forward-search-history (C-s)}}{145}
\entry{\code {forward-word (M-f)}}{144}
\entry{\code {fetch-history ()}}{148}
\entry{\code {forward-backward-delete-char ()}}{148}
\entry{\code {forward-char (C-f)}}{145}
\entry{\code {forward-search-history (C-s)}}{146}
\entry{\code {forward-word (M-f)}}{145}
\initial {G}
\entry{\code {glob-complete-word (M-g)}}{154}
\entry{\code {glob-expand-word (C-x *)}}{154}
\entry{\code {glob-list-expansions (C-x g)}}{154}
\entry{\code {glob-complete-word (M-g)}}{155}
\entry{\code {glob-expand-word (C-x *)}}{155}
\entry{\code {glob-list-expansions (C-x g)}}{155}
\initial {H}
\entry{\code {history-and-alias-expand-line ()}}{154}
\entry{\code {history-expand-line (M-^)}}{154}
\entry{\code {history-search-backward ()}}{146}
\entry{\code {history-search-forward ()}}{146}
\entry{\code {history-substring-search-backward ()}}{146}
\entry{\code {history-substring-search-forward ()}}{146}
\entry{\code {history-and-alias-expand-line ()}}{155}
\entry{\code {history-expand-line (M-^)}}{155}
\entry{\code {history-search-backward ()}}{147}
\entry{\code {history-search-forward ()}}{147}
\entry{\code {history-substring-search-backward ()}}{147}
\entry{\code {history-substring-search-forward ()}}{147}
\initial {I}
\entry{\code {insert-comment (M-#)}}{153}
\entry{\code {insert-completions (M-*)}}{150}
\entry{\code {insert-last-argument (M-. or M-_)}}{154}
\entry{\code {insert-comment (M-#)}}{154}
\entry{\code {insert-completions (M-*)}}{151}
\entry{\code {insert-last-argument (M-. or M-_)}}{155}
\initial {K}
\entry{\code {kill-line (C-k)}}{148}
\entry{\code {kill-region ()}}{149}
\entry{\code {kill-whole-line ()}}{149}
\entry{\code {kill-word (M-d)}}{149}
\entry{\code {kill-line (C-k)}}{149}
\entry{\code {kill-region ()}}{150}
\entry{\code {kill-whole-line ()}}{150}
\entry{\code {kill-word (M-d)}}{150}
\initial {M}
\entry{\code {magic-space ()}}{154}
\entry{\code {menu-complete ()}}{150}
\entry{\code {menu-complete-backward ()}}{151}
\entry{\code {magic-space ()}}{155}
\entry{\code {menu-complete ()}}{151}
\entry{\code {menu-complete-backward ()}}{152}
\initial {N}
\entry{\code {next-history (C-n)}}{145}
\entry{\code {next-screen-line ()}}{145}
\entry{\code {non-incremental-forward-search-history (M-n)}}{146}
\entry{\code {non-incremental-reverse-search-history (M-p)}}{146}
\entry{\code {next-history (C-n)}}{146}
\entry{\code {next-screen-line ()}}{146}
\entry{\code {non-incremental-forward-search-history (M-n)}}{147}
\entry{\code {non-incremental-reverse-search-history (M-p)}}{147}
\initial {O}
\entry{\code {operate-and-get-next (C-o)}}{147}
\entry{\code {overwrite-mode ()}}{148}
\entry{\code {operate-and-get-next (C-o)}}{148}
\entry{\code {overwrite-mode ()}}{149}
\initial {P}
\entry{\code {possible-command-completions (C-x !)}}{151}
\entry{\code {possible-completions (M-?)}}{150}
\entry{\code {possible-filename-completions (C-x /)}}{151}
\entry{\code {possible-hostname-completions (C-x @)}}{151}
\entry{\code {possible-username-completions (C-x ~)}}{151}
\entry{\code {possible-variable-completions (C-x $)}}{151}
\entry{\code {prefix-meta (\key {ESC})}}{152}
\entry{\code {previous-history (C-p)}}{145}
\entry{\code {previous-screen-line ()}}{145}
\entry{\code {print-last-kbd-macro ()}}{152}
\entry{\code {possible-command-completions (C-x !)}}{152}
\entry{\code {possible-completions (M-?)}}{151}
\entry{\code {possible-filename-completions (C-x /)}}{152}
\entry{\code {possible-hostname-completions (C-x @)}}{152}
\entry{\code {possible-username-completions (C-x ~)}}{152}
\entry{\code {possible-variable-completions (C-x $)}}{152}
\entry{\code {prefix-meta (\key {ESC})}}{153}
\entry{\code {previous-history (C-p)}}{146}
\entry{\code {previous-screen-line ()}}{146}
\entry{\code {print-last-kbd-macro ()}}{153}
\initial {Q}
\entry{\code {quoted-insert (C-q or C-v)}}{147}
\entry{\code {quoted-insert (C-q or C-v)}}{148}
\initial {R}
\entry{\code {re-read-init-file (C-x C-r)}}{152}
\entry{\code {redraw-current-line ()}}{145}
\entry{\code {reverse-search-history (C-r)}}{145}
\entry{\code {revert-line (M-r)}}{152}
\entry{\code {re-read-init-file (C-x C-r)}}{153}
\entry{\code {redraw-current-line ()}}{146}
\entry{\code {reverse-search-history (C-r)}}{146}
\entry{\code {revert-line (M-r)}}{153}
\initial {S}
\entry{\code {self-insert (a, b, A, 1, !, \dots {})}}{147}
\entry{\code {set-mark (C-@)}}{152}
\entry{\code {shell-backward-kill-word ()}}{149}
\entry{\code {shell-backward-word (M-C-b)}}{144}
\entry{\code {shell-expand-line (M-C-e)}}{154}
\entry{\code {shell-forward-word (M-C-f)}}{144}
\entry{\code {shell-kill-word (M-C-d)}}{149}
\entry{\code {shell-transpose-words (M-C-t)}}{148}
\entry{\code {skip-csi-sequence ()}}{153}
\entry{\code {spell-correct-word (C-x s)}}{154}
\entry{\code {start-kbd-macro (C-x ()}}{152}
\entry{\code {self-insert (a, b, A, 1, !, \dots {})}}{148}
\entry{\code {set-mark (C-@)}}{153}
\entry{\code {shell-backward-kill-word ()}}{150}
\entry{\code {shell-backward-word (M-C-b)}}{145}
\entry{\code {shell-expand-line (M-C-e)}}{155}
\entry{\code {shell-forward-word (M-C-f)}}{145}
\entry{\code {shell-kill-word (M-C-d)}}{150}
\entry{\code {shell-transpose-words (M-C-t)}}{149}
\entry{\code {skip-csi-sequence ()}}{154}
\entry{\code {spell-correct-word (C-x s)}}{155}
\entry{\code {start-kbd-macro (C-x ()}}{153}
\initial {T}
\entry{\code {tilde-expand (M-&)}}{152}
\entry{\code {transpose-chars (C-t)}}{148}
\entry{\code {transpose-words (M-t)}}{148}
\entry{\code {tilde-expand (M-&)}}{153}
\entry{\code {transpose-chars (C-t)}}{149}
\entry{\code {transpose-words (M-t)}}{149}
\initial {U}
\entry{\code {undo (C-_ or C-x C-u)}}{152}
\entry{\code {universal-argument ()}}{150}
\entry{\code {unix-filename-rubout ()}}{149}
\entry{\code {unix-line-discard (C-u)}}{148}
\entry{\code {unix-word-rubout (C-w)}}{149}
\entry{\code {upcase-word (M-u)}}{148}
\entry{\code {undo (C-_ or C-x C-u)}}{153}
\entry{\code {universal-argument ()}}{151}
\entry{\code {unix-filename-rubout ()}}{150}
\entry{\code {unix-line-discard (C-u)}}{149}
\entry{\code {unix-word-rubout (C-w)}}{150}
\entry{\code {upcase-word (M-u)}}{149}
\initial {Y}
\entry{\code {yank (C-y)}}{149}
\entry{\code {yank-last-arg (M-. or M-_)}}{146}
\entry{\code {yank-nth-arg (M-C-y)}}{146}
\entry{\code {yank-pop (M-y)}}{149}
\entry{\code {yank (C-y)}}{150}
\entry{\code {yank-last-arg (M-. or M-_)}}{147}
\entry{\code {yank-nth-arg (M-C-y)}}{147}
\entry{\code {yank-pop (M-y)}}{150}
+169 -104
View File
@@ -4,9 +4,9 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This text is a brief description of the features that are present in
the Bash shell (version 5.3, 10 October 2024).
the Bash shell (version 5.3, 14 October 2024).
This is Edition 5.3, last updated 10 October 2024,
This is Edition 5.3, last updated 14 October 2024,
of The GNU Bash Reference Manual,
for Bash, Version 5.3.
@@ -77,10 +77,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
<h1 class="top" id="Bash-Features-1"><span>Bash Features<a class="copiable-link" href="#Bash-Features-1"> &para;</a></span></h1>
<p>This text is a brief description of the features that are present in
the Bash shell (version 5.3, 10 October 2024).
the Bash shell (version 5.3, 14 October 2024).
The Bash home page is <a class="url" href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
</p>
<p>This is Edition 5.3, last updated 10 October 2024,
<p>This is Edition 5.3, last updated 14 October 2024,
of <cite class="cite">The GNU Bash Reference Manual</cite>,
for <code class="code">Bash</code>, Version 5.3.
</p>
@@ -2515,7 +2515,7 @@ corresponding element from the directory stack, as it would be displayed
by the <code class="code">dirs</code> builtin invoked with the characters following tilde
in the tilde-prefix as an argument (see <a class="pxref" href="#The-Directory-Stack">The Directory Stack</a>).
If the tilde-prefix, sans the tilde, consists of a number without a
leading &lsquo;<samp class="samp">+</samp>&rsquo; or &lsquo;<samp class="samp">-</samp>&rsquo;, &lsquo;<samp class="samp">+</samp>&rsquo; is assumed.
leading &lsquo;<samp class="samp">+</samp>&rsquo; or &lsquo;<samp class="samp">-</samp>&rsquo;, tilde expansion assumes &lsquo;<samp class="samp">+</samp>&rsquo;.
</p>
<p>The results of tilde expansion are treated as if they were quoted, so
the replacement is not subject to word splitting and filename expansion.
@@ -2665,7 +2665,7 @@ unset-or-null
<dt><code class="code">${<var class="var">parameter</var>:=<var class="var">word</var>}</code></dt>
<dd><p>If <var class="var">parameter</var> is unset or null, the expansion of <var class="var">word</var>
is assigned to <var class="var">parameter</var>,
and the result of the expansion
and the result of the expansion
is the final value of <var class="var">parameter</var>.
Positional parameters and special parameters may not be assigned
in this way.
@@ -2684,9 +2684,10 @@ DEFAULT
</dd>
<dt><code class="code">${<var class="var">parameter</var>:?<var class="var">word</var>}</code></dt>
<dd><p>If <var class="var">parameter</var>
is null or unset, the expansion of <var class="var">word</var> (or a message
is null or unset, the shell writes
the expansion of <var class="var">word</var> (or a message
to that effect if <var class="var">word</var>
is not present) is written to the standard error and the shell, if it
is not present) to the standard error and, if it
is not interactive, exits with a non-zero status.
An interactive shell does not exit, but does not execute the command
associated with the expansion.
@@ -9256,9 +9257,13 @@ before executing any of the commands on that line or the compound command.
Aliases are expanded when a command is read, not when it is executed.
Therefore, an
alias definition appearing on the same line as another
command does not take effect until the shell reads the next line of input.
command does not take effect until the shell reads the next line of input,
and an alias definition in a compound command does not take
effect until the shell parses and executes the entire compound command.
The commands following the alias definition
on that line are not affected by the new alias.
on that line,
or in the rest of a compound command,
are not affected by the new alias.
This behavior is also an issue when functions are executed.
Aliases are expanded when a function definition is read,
not when the function is executed, because a function definition
@@ -10472,33 +10477,44 @@ Next: <a href="#Job-Control-Builtins" accesskey="n" rel="next">Job Control Built
<p>Job control
refers to the ability to selectively stop (suspend)
the execution of processes and continue (resume)
their execution at a later point. A user typically employs
their execution at a later point.
A user typically employs
this facility via an interactive interface supplied jointly
by the operating system kernel&rsquo;s terminal driver and Bash.
</p>
<p>The shell associates a <var class="var">job</var> with each pipeline. It keeps a
table of currently executing jobs, which may be listed with the
<code class="code">jobs</code> command. When Bash starts a job
asynchronously, it prints a line that looks
<p>The shell associates a <var class="var">job</var> with each pipeline.
It keeps a
table of currently executing jobs, which the
<code class="code">jobs</code> command will display.
Each job has a <em class="dfn">job number</em>, which <code class="code">jobs</code> displays between brackets.
Job numbers start at 1.
When Bash starts a job asynchronously, it prints a line that looks
like:
</p><div class="example">
<pre class="example-preformatted">[1] 25647
</pre></div>
<p>indicating that this job is job number 1 and that the process <small class="sc">ID</small>
of the last process in the pipeline associated with this job is
25647. All of the processes in a single pipeline are members of
the same job. Bash uses the <var class="var">job</var> abstraction as the
basis for job control.
25647.
All of the processes in a single pipeline are members of
the same job.
Bash uses the <var class="var">job</var> abstraction as the basis for job control.
</p>
<p>To facilitate the implementation of the user interface to job
control, the operating system maintains the notion of a current terminal
process group <small class="sc">ID</small>. Members of this process group (processes whose
<p>To facilitate the implementation of the user interface to job control,
each process has a <em class="dfn">process group <small class="sc">ID</small></em>, and
the operating system maintains the notion of a current terminal
process group <small class="sc">ID</small>.
Processes that have the same process group ID are said to be part of
the same <em class="dfn">process group</em>.
Members of the foreground process group (processes whose
process group <small class="sc">ID</small> is equal to the current terminal process group
<small class="sc">ID</small>) receive keyboard-generated signals such as <code class="code">SIGINT</code>.
These processes are said to be in the foreground. Background
processes are those whose process group <small class="sc">ID</small> differs from the
terminal&rsquo;s; such processes are immune to keyboard-generated
signals. Only foreground processes are allowed to read from or, if
Processes in the foreground process group are said to be
foreground processes.
Background processes
are those whose process group <small class="sc">ID</small> differs from the terminal&rsquo;s;
such processes are immune to keyboard-generated signals.
Only foreground processes are allowed to read from or, if
the user so specifies with <code class="code">stty tostop</code>, write to the terminal.
Background processes which attempt to
read from (write to when <code class="code">tostop</code> is in effect) the
@@ -10507,72 +10523,101 @@ signal by the kernel&rsquo;s terminal driver,
which, unless caught, suspends the process.
</p>
<p>If the operating system on which Bash is running supports
job control, Bash contains facilities to use it. Typing the
job control, Bash contains facilities to use it.
Typing the
<em class="dfn">suspend</em> character (typically &lsquo;<samp class="samp">^Z</samp>&rsquo;, Control-Z) while a
process is running causes that process to be stopped and returns
control to Bash. Typing the <em class="dfn">delayed suspend</em> character
(typically &lsquo;<samp class="samp">^Y</samp>&rsquo;, Control-Y) causes the process to be stopped
when it attempts to read input from the terminal, and control to
be returned to Bash. The user then manipulates the state of
this job, using the <code class="code">bg</code> command to continue it in the
background, the <code class="code">fg</code> command to continue it in the
foreground, or the <code class="code">kill</code> command to kill it. A &lsquo;<samp class="samp">^Z</samp>&rsquo;
process is running stops that process
and returns control to Bash.
Typing the <em class="dfn">delayed suspend</em> character
(typically &lsquo;<samp class="samp">^Y</samp>&rsquo;, Control-Y) causes the process to stop
when it attempts to read input from the terminal,
and returns control to Bash.
The user then manipulates the state of
this job, using
the <code class="code">bg</code> command to continue it in the background,
the <code class="code">fg</code> command to continue it in the foreground, or
the <code class="code">kill</code> command to kill it.
The suspend character
takes effect immediately, and has the additional side effect of
causing pending output and typeahead to be discarded.
discarding any pending output and typeahead.
If you want to force a background process to stop, or stop a process
that&rsquo;s not associated with your terminal session,
send it the <code class="code">SIGSTOP</code> signal using <code class="code">kill</code>.
</p>
<p>There are a number of ways to refer to a job in the shell. The
character &lsquo;<samp class="samp">%</samp>&rsquo; introduces a job specification (<em class="dfn">jobspec</em>).
<p>There are a number of ways to refer to a job in the shell.
The &lsquo;<samp class="samp">%</samp>&rsquo; character introduces a <em class="dfn">job specification</em> (jobspec).
</p>
<p>Job number <code class="code">n</code> may be referred to as &lsquo;<samp class="samp">%n</samp>&rsquo;.
The symbols &lsquo;<samp class="samp">%%</samp>&rsquo; and &lsquo;<samp class="samp">%+</samp>&rsquo; refer to the shell&rsquo;s notion of the
current job, which is the last job stopped while it was in the foreground
or started in the background.
A job may also be referred to
using a prefix of the name used to start it,
or using a substring that appears in its command line.
For example, &lsquo;<samp class="samp">%ce</samp>&rsquo; refers
to a job whose command name begins with &lsquo;<samp class="samp">ce</samp>&rsquo;.
Using &lsquo;<samp class="samp">%?ce</samp>&rsquo;, on the
other hand, refers to any job containing the string &lsquo;<samp class="samp">ce</samp>&rsquo; in
its command line.
If the prefix or substring matches more than one job,
Bash reports an error.
</p>
<p>The symbols &lsquo;<samp class="samp">%%</samp>&rsquo; and &lsquo;<samp class="samp">%+</samp>&rsquo; refer to the shell&rsquo;s notion of the
<em class="dfn">current job</em>.
A single &lsquo;<samp class="samp">%</samp>&rsquo; (with no accompanying job specification) also refers
to the current job.
The previous job may be referenced using &lsquo;<samp class="samp">%-</samp>&rsquo;.
&lsquo;<samp class="samp">%-</samp>&rsquo; refers to the <em class="dfn">previous job</em>.
When a job starts in the background,
a job stops while in the foreground,
or a job is resumed in the background,
it becomes the current job.
The job that was the current job becomes the previous job.
When the current job terminates, the previous job becomes the
current job.
If there is only a single job, &lsquo;<samp class="samp">%+</samp>&rsquo; and &lsquo;<samp class="samp">%-</samp>&rsquo; can both be used
to refer to that job.
In output pertaining to jobs (e.g., the output of the <code class="code">jobs</code>
command), the current job is always flagged with a &lsquo;<samp class="samp">+</samp>&rsquo;, and the
command), the current job is always marked with a &lsquo;<samp class="samp">+</samp>&rsquo;, and the
previous job with a &lsquo;<samp class="samp">-</samp>&rsquo;.
</p>
<p>A job may also be referred to
using a prefix of the name used to start it, or using a substring
that appears in its command line. For example, &lsquo;<samp class="samp">%ce</samp>&rsquo; refers
to a stopped job whose command name begins with &lsquo;<samp class="samp">ce</samp>&rsquo;.
Using &lsquo;<samp class="samp">%?ce</samp>&rsquo;, on the
other hand, refers to any job containing the string &lsquo;<samp class="samp">ce</samp>&rsquo; in
its command line. If the prefix or substring matches more than one job,
Bash reports an error.
</p>
<p>Simply naming a job can be used to bring it into the foreground:
&lsquo;<samp class="samp">%1</samp>&rsquo; is a synonym for &lsquo;<samp class="samp">fg %1</samp>&rsquo;, bringing job 1 from the
background into the foreground. Similarly, &lsquo;<samp class="samp">%1 &amp;</samp>&rsquo; resumes
job 1 in the background, equivalent to &lsquo;<samp class="samp">bg %1</samp>&rsquo;
background into the foreground.
Similarly, &lsquo;<samp class="samp">%1 &amp;</samp>&rsquo; resumes
job 1 in the background, equivalent to &lsquo;<samp class="samp">bg %1</samp>&rsquo;.
</p>
<p>The shell learns immediately whenever a job changes state.
Normally, Bash waits until it is about to print a prompt
before reporting changes in a job&rsquo;s status so as to not interrupt
Normally, Bash waits until it is about to print a prompt before
notifying the user about
changes in a job&rsquo;s status so as to not interrupt
any other output,
though it will notify of changes in a job&rsquo;s status after a
foreground command in
a list completes, before executing the next command.
a list completes, before executing the next command in the list.
If the <samp class="option">-b</samp> option to the <code class="code">set</code> builtin is enabled,
Bash reports such changes immediately (see <a class="pxref" href="#The-Set-Builtin">The Set Builtin</a>).
Any trap on <code class="code">SIGCHLD</code> is executed for each child process
that exits.
Bash executes any trap on <code class="code">SIGCHLD</code>
for each child process that terminates.
</p>
<p>If an attempt to exit Bash is made while jobs are stopped, (or running, if
<p>When a job terminates and Bash notifies the user about it,
Bash removes the job from the jobs table.
It will not appear in <code class="code">jobs</code> output, but <code class="code">wait</code> will
report its exit status, as long as it&rsquo;s supplied the process ID
associated with the job as an argument.
When the table is empty, job numbers start over at 1.
</p>
<p>If a user attempts to exit
Bash while jobs are stopped, (or running, if
the <code class="code">checkjobs</code> option is enabled &ndash; see <a class="ref" href="#The-Shopt-Builtin">The Shopt Builtin</a>), the
shell prints a warning message, and if the <code class="code">checkjobs</code> option is
enabled, lists the jobs and their statuses.
The <code class="code">jobs</code> command may then be used to inspect their status.
If a second attempt to exit is made without an intervening command,
Bash does not print another warning, and any stopped jobs are terminated.
If the user immediately attempts to exit again,
without an intervening command,
Bash does not print another warning, and
terminates any stopped jobs.
</p>
<p>When the shell is waiting for a job or process using the <code class="code">wait</code>
builtin, and job control is enabled, <code class="code">wait</code> will return when the
job changes state. The <samp class="option">-f</samp> option causes <code class="code">wait</code> to wait
job changes state.
The <samp class="option">-f</samp> option causes <code class="code">wait</code> to wait
until the job or process terminates before returning.
</p>
<hr>
@@ -10592,8 +10637,9 @@ Next: <a href="#Job-Control-Variables" accesskey="n" rel="next">Job Control Vari
<p>Resume each suspended job <var class="var">jobspec</var> in the background, as if it
had been started with &lsquo;<samp class="samp">&amp;</samp>&rsquo;.
If <var class="var">jobspec</var> is not supplied, the current job is used.
The return status is zero unless it is run when job control is not
If <var class="var">jobspec</var> is not supplied, the shell uses its
notion of the current job.
<code class="code">bg</code> returns zero unless it is run when job control is not
enabled, or, when run with job control enabled, any
<var class="var">jobspec</var> was not found or specifies a job
that was started without job control.
@@ -10605,7 +10651,7 @@ that was started without job control.
</pre></div>
<p>Resume the job <var class="var">jobspec</var> in the foreground and make it the current job.
If <var class="var">jobspec</var> is not supplied, resume the current job.
If <var class="var">jobspec</var> is not supplied, <code class="code">fg</code> resumes the current job.
The return status is that of the command placed into the foreground,
or non-zero if run when job control is disabled or, when run with
job control enabled, <var class="var">jobspec</var> does not specify a valid job or
@@ -10647,6 +10693,10 @@ the user was last notified of their status.
<p>If <var class="var">jobspec</var> is supplied,
<code class="code">jobs</code> restricts output to information about that job.
If <var class="var">jobspec</var> is not supplied, <code class="code">jobs</code> lists the status of all jobs.
The return status is zero unless an invalid option is encountered
or an invalid
<var class="var">jobspec</var>
is supplied.
</p>
<p>If the <samp class="option">-x</samp> option is supplied, <code class="code">jobs</code> replaces any
<var class="var">jobspec</var> found in <var class="var">command</var> or <var class="var">arguments</var> with the
@@ -10656,12 +10706,14 @@ passing it <var class="var">argument</var>s, returning its exit status.
</dd>
<dt><a id="index-kill"></a><span><code class="code">kill</code><a class="copiable-link" href="#index-kill"> &para;</a></span></dt>
<dd><div class="example">
<pre class="example-preformatted">kill [-s <var class="var">sigspec</var>] [-n <var class="var">signum</var>] [-<var class="var">sigspec</var>] <var class="var">jobspec</var> or <var class="var">pid</var>
<pre class="example-preformatted">kill [-s <var class="var">sigspec</var>] [-n <var class="var">signum</var>] [-<var class="var">sigspec</var>] <var class="var">id</var> [...]
kill -l|-L [<var class="var">exit_status</var>]
</pre></div>
<p>Send a signal specified by <var class="var">sigspec</var> or <var class="var">signum</var> to the process
named by job specification <var class="var">jobspec</var> or process <small class="sc">ID</small> <var class="var">pid</var>.
<p>Send a signal specified by <var class="var">sigspec</var> or <var class="var">signum</var> to the processes
named by each <var class="var">id</var>.
Each <var class="var">id</var> may be a
job specification <var class="var">jobspec</var> or process <small class="sc">ID</small> <var class="var">pid</var>.
<var class="var">sigspec</var> is either a case-insensitive signal name such as
<code class="code">SIGINT</code> (with or without the <code class="code">SIG</code> prefix)
or a signal number; <var class="var">signum</var> is a signal number.
@@ -10669,11 +10721,15 @@ If <var class="var">sigspec</var> and <var class="var">signum</var> are not pres
sends <code class="code">SIGTERM</code>.
</p>
<p>The <samp class="option">-l</samp> option lists the signal names.
If any arguments are supplied when <samp class="option">-l</samp> is supplied, the names of the
signals corresponding to the arguments are listed, and the return status
is zero.
If any arguments are supplied when <samp class="option">-l</samp> is supplied,
<code class="code">kill</code> lists the names of the signals corresponding to the arguments,
and the return status is zero.
<var class="var">exit_status</var> is a number specifying a signal number or the exit
status of a process terminated by a signal.
status of a process terminated by a signal;
if it is supplied, <code class="code">kill</code> prints the name of the signal that caused
the process to terminate.
<code class="code">kill</code> assumes that process exit statuses are greater than 128;
anything less than that is a signal number.
The <samp class="option">-L</samp> option is equivalent to <samp class="option">-l</samp>.
</p>
<p>The return status is zero if at least one signal was successfully sent,
@@ -10687,8 +10743,9 @@ or non-zero if an error occurs or an invalid option is encountered.
<p>Wait until the child process specified by each <var class="var">id</var> exits and
return the exit status of the last <var class="var">id</var>.
Each <var class="var">id</var> may be a <var class="var">pid</var> or job specification <var class="var">jobspec</var>;
if a job spec is supplied, <code class="code">wait</code> waits for all processes in the job.
Each <var class="var">id</var> may be a process <small class="sc">ID</small> <var class="var">pid</var>
or a job specification <var class="var">jobspec</var>;
if a jobspec is supplied, <code class="code">wait</code> waits for all processes in the job.
</p>
<p>If no options or <var class="var">id</var>s are supplied,
<code class="code">wait</code> waits for all running background jobs and
@@ -10697,20 +10754,21 @@ if its process id is the same as <var class="var">$!</var>,
and the return status is zero.
</p>
<p>If the <samp class="option">-n</samp> option is supplied, <code class="code">wait</code> waits for any one of
the <var class="var">id</var>s or, if no <var class="var">id</var>s are supplied, any job
or process substitution,
the <var class="var">id</var>s or,
if no <var class="var">id</var>s are supplied, any job or process substitution,
to complete and returns its exit status.
If none of the supplied <var class="var">id</var>s is a child of the shell,
or if no arguments are supplied and the shell has no unwaited-for children,
the exit status is 127.
</p>
<p>If the <samp class="option">-p</samp> option is supplied, the process or job identifier
of the job for which the exit status is returned is assigned to the
<p>If the <samp class="option">-p</samp> option is supplied, <code class="code">wait</code> assigns
the process or job identifier of the job
for which the exit status is returned to the
variable <var class="var">varname</var> named by the option argument.
The variable,
which cannot be readonly,
will be unset initially, before any assignment.
This is useful only when the <samp class="option">-n</samp> option is supplied.
This is useful only when used with the <samp class="option">-n</samp> option.
</p>
<p>Supplying the <samp class="option">-f</samp> option, when job control is enabled,
forces <code class="code">wait</code> to wait for each <var class="var">id</var> to terminate before
@@ -10732,21 +10790,27 @@ Otherwise, the return status is the exit status of the last <var class="var">id
<p>Without options, remove each <var class="var">id</var> from the table of
active jobs.
Each <var class="var">id</var> may be a <var class="var">pid</var> or job specification <var class="var">jobspec</var>;
Each <var class="var">id</var> may be a job specification <var class="var">jobspec</var>
or a process <small class="sc">ID</small> <var class="var">pid</var>;
if <var class="var">id</var> is a <var class="var">pid</var>,
<code class="code">disown</code> uses the job containing <var class="var">pid</var>.
If the <samp class="option">-h</samp> option is supplied, the job is not removed from the table,
but is marked so that <code class="code">SIGHUP</code> is not sent to the job if the shell
receives a <code class="code">SIGHUP</code>.
If <var class="var">id</var> is not present, and neither the <samp class="option">-a</samp> nor the
<samp class="option">-r</samp> option is supplied, <code class="code">disown</code> removes the current job.
<code class="code">disown</code> uses the job containing <var class="var">pid</var> as <var class="var">jobspec</var>.
</p>
<p>If the <samp class="option">-h</samp> option is supplied,
<code class="code">disown</code> does not remove the jobs corresponding to each <code class="code">id</code>
from the jobs table,
but rather marks them so the shell does not send
<code class="code">SIGHUP</code>
to the job if the shell receives a
<code class="code">SIGHUP</code>.
</p>
<p>If no <var class="var">id</var> is supplied, the <samp class="option">-a</samp> option means to remove or
mark all jobs; the <samp class="option">-r</samp> option without an <var class="var">id</var>
argument restricts operation to running jobs.
argument removes or marks running jobs.
If no <var class="var">id</var> is supplied,
and neither the <samp class="option">-a</samp> nor the <samp class="option">-r</samp> option is supplied,
<code class="code">disown</code> removes or marks the current job.
</p>
<p>The return value is 0 unless an <var class="var">id</var>
does not specify a valid job.
<p>The return value is 0 unless an <var class="var">id</var> does not specify a valid job.
</p>
</dd>
<dt><a id="index-suspend"></a><span><code class="code">suspend</code><a class="copiable-link" href="#index-suspend"> &para;</a></span></dt>
@@ -10769,8 +10833,8 @@ is not supplied.
</dl>
<p>When job control is not active, the <code class="code">kill</code> and <code class="code">wait</code>
builtins do not accept <var class="var">jobspec</var> arguments. They must be
supplied process <small class="sc">ID</small>s.
builtins do not accept <var class="var">jobspec</var> arguments.
They must be supplied process <small class="sc">ID</small>s.
</p>
<hr>
</div>
@@ -10785,24 +10849,24 @@ Previous: <a href="#Job-Control-Builtins" accesskey="p" rel="prev">Job Control B
<dt><a id="index-auto_005fresume"></a><span><code class="code">auto_resume</code><a class="copiable-link" href="#index-auto_005fresume"> &para;</a></span></dt>
<dd><p>This variable controls how the shell interacts with the user and
job control.
If this variable exists then single-word simple
commands without redirections are treated as candidates for resumption
If this variable exists then simple commands
consisting of only a single word,
without redirections, are treated as candidates for resumption
of an existing job.
There is no ambiguity allowed; if there is more than one job
beginning with the string typed, then
the most recently accessed job is selected.
beginning with or containing the word, then
this selects the most recently accessed job.
The name of a stopped job, in this context, is the command line
used to start it.
used to start it, as displayed by <code class="code">jobs</code>.
If this variable is set to the value &lsquo;<samp class="samp">exact</samp>&rsquo;,
the string supplied must match the name of a stopped job exactly;
the word must match the name of a stopped job exactly;
if set to &lsquo;<samp class="samp">substring</samp>&rsquo;,
the string supplied needs to match a substring of the name of a
stopped job.
the word needs to match a substring of the name of a stopped job.
The &lsquo;<samp class="samp">substring</samp>&rsquo; value provides functionality
analogous to the &lsquo;<samp class="samp">%?</samp>&rsquo; job <small class="sc">ID</small> (see <a class="pxref" href="#Job-Control-Basics">Job Control Basics</a>).
If set to any other value, the supplied string must
be a prefix of a stopped job&rsquo;s name; this provides functionality
analogous to the &lsquo;<samp class="samp">%</samp>&rsquo; job <small class="sc">ID</small>.
analogous to the &lsquo;<samp class="samp">%?string</samp>&rsquo; job <small class="sc">ID</small> (see <a class="pxref" href="#Job-Control-Basics">Job Control Basics</a>).
If set to any other value (e.g., &lsquo;<samp class="samp">prefix</samp>&rsquo;),
the word must be a prefix of a stopped job&rsquo;s name;
this provides functionality analogous to the &lsquo;<samp class="samp">%string</samp>&rsquo; job <small class="sc">ID</small>.
</p>
</dd>
</dl>
@@ -11793,7 +11857,7 @@ expressed on the right hand side (that is, to insert the text
<var class="var">NEWLINE</var>,
<var class="var">RET</var>,
<var class="var">RETURN</var>,
<var class="var">RUBOUT</var>,
<var class="var">RUBOUT</var> (a destructive backspace),
<var class="var">SPACE</var>,
<var class="var">SPC</var>,
and
@@ -12432,6 +12496,7 @@ interprets it as the end of input and returns <small class="sc">EOF</small>.
If this function is bound to the
same character as the tty <small class="sc">EOF</small> character, as <kbd class="kbd">C-d</kbd>
commonly is, see above for the effects.
This may also be bound to the Delete key on some keyboards.
</p>
</dd>
<dt><a id="index-backward_002ddelete_002dchar-_0028Rubout_0029"></a><span><code class="code">backward-delete-char (Rubout)</code><a class="copiable-link" href="#index-backward_002ddelete_002dchar-_0028Rubout_0029"> &para;</a></span></dt>
+268 -241
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 7.1 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 10 October 2024).
Bash shell (version 5.3, 14 October 2024).
This is Edition 5.3, last updated 10 October 2024, of The GNU Bash
This is Edition 5.3, last updated 14 October 2024, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Copyright © 1988-2024 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 10 October 2024). The Bash home page is
Bash shell (version 5.3, 14 October 2024). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.3, last updated 10 October 2024, of The GNU Bash
This is Edition 5.3, last updated 14 October 2024, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Bash contains features that appear in other popular shells, and some
@@ -1775,7 +1775,7 @@ replaced with the corresponding element from the directory stack, as it
would be displayed by the dirs builtin invoked with the characters
following tilde in the tilde-prefix as an argument (*note The Directory
Stack::). If the tilde-prefix, sans the tilde, consists of a number
without a leading + or -, + is assumed.
without a leading + or -, tilde expansion assumes +.
The results of tilde expansion are treated as if they were quoted, so
the replacement is not subject to word splitting and filename expansion.
@@ -1905,12 +1905,12 @@ omitted, the operator tests only for existence.
DEFAULT
${PARAMETER:?WORD}
If PARAMETER is null or unset, the expansion of WORD (or a message
to that effect if WORD is not present) is written to the standard
error and the shell, if it is not interactive, exits with a
non-zero status. An interactive shell does not exit, but does not
execute the command associated with the expansion. Otherwise, the
value of PARAMETER is substituted.
If PARAMETER is null or unset, the shell writes the expansion of
WORD (or a message to that effect if WORD is not present) to the
standard error and, if it is not interactive, exits with a non-zero
status. An interactive shell does not exit, but does not execute
the command associated with the expansion. Otherwise, the value of
PARAMETER is substituted.
$ var=
$ : ${var:?var is unset or null}
@@ -7072,15 +7072,17 @@ all lines that make up a compound command, before executing any of the
commands on that line or the compound command. Aliases are expanded
when a command is read, not when it is executed. Therefore, an alias
definition appearing on the same line as another command does not take
effect until the shell reads the next line of input. The commands
following the alias definition on that line are not affected by the new
alias. This behavior is also an issue when functions are executed.
Aliases are expanded when a function definition is read, not when the
function is executed, because a function definition is itself a command.
As a consequence, aliases defined in a function are not available until
after that function is executed. To be safe, always put alias
definitions on a separate line, and do not use alias in compound
commands.
effect until the shell reads the next line of input, and an alias
definition in a compound command does not take effect until the shell
parses and executes the entire compound command. The commands following
the alias definition on that line, or in the rest of a compound command,
are not affected by the new alias. This behavior is also an issue when
functions are executed. Aliases are expanded when a function definition
is read, not when the function is executed, because a function
definition is itself a command. As a consequence, aliases defined in a
function are not available until after that function is executed. To be
safe, always put alias definitions on a separate line, and do not use
alias in compound commands.
For almost every purpose, shell functions are preferred over aliases.
@@ -8066,8 +8068,10 @@ interface supplied jointly by the operating system kernel's terminal
driver and Bash.
The shell associates a JOB with each pipeline. It keeps a table of
currently executing jobs, which may be listed with the jobs command.
When Bash starts a job asynchronously, it prints a line that looks like:
currently executing jobs, which the jobs command will display. Each
job has a job number”, which jobs displays between brackets. Job
numbers start at 1. When Bash starts a job asynchronously, it prints a
line that looks like:
[1] 25647
indicating that this job is job number 1 and that the process ID of the
last process in the pipeline associated with this job is 25647. All of
@@ -8075,72 +8079,85 @@ the processes in a single pipeline are members of the same job. Bash
uses the JOB abstraction as the basis for job control.
To facilitate the implementation of the user interface to job
control, the operating system maintains the notion of a current terminal
process group ID. Members of this process group (processes whose
process group ID is equal to the current terminal process group ID)
receive keyboard-generated signals such as SIGINT. These processes
are said to be in the foreground. Background processes are those whose
process group ID differs from the terminal's; such processes are immune
to keyboard-generated signals. Only foreground processes are allowed to
read from or, if the user so specifies with stty tostop, write to the
terminal. Background processes which attempt to read from (write to
when tostop is in effect) the terminal are sent a SIGTTIN
(SIGTTOU) signal by the kernel's terminal driver, which, unless
caught, suspends the process.
control, each process has a “process group ID”, and the operating system
maintains the notion of a current terminal process group ID. Processes
that have the same process group ID are said to be part of the same
“process group”. Members of the foreground process group (processes
whose process group ID is equal to the current terminal process group
ID) receive keyboard-generated signals such as SIGINT. Processes in
the foreground process group are said to be foreground processes.
Background processes are those whose process group ID differs from the
terminal's; such processes are immune to keyboard-generated signals.
Only foreground processes are allowed to read from or, if the user so
specifies with stty tostop, write to the terminal. Background
processes which attempt to read from (write to when tostop is in
effect) the terminal are sent a SIGTTIN (SIGTTOU) signal by the
kernel's terminal driver, which, unless caught, suspends the process.
If the operating system on which Bash is running supports job
control, Bash contains facilities to use it. Typing the “suspend”
character (typically ^Z, Control-Z) while a process is running causes
that process to be stopped and returns control to Bash. Typing the
“delayed suspend” character (typically ^Y, Control-Y) causes the
process to be stopped when it attempts to read input from the terminal,
and control to be returned to Bash. The user then manipulates the state
of this job, using the bg command to continue it in the background,
the fg command to continue it in the foreground, or the kill command
to kill it. A ^Z takes effect immediately, and has the additional
side effect of causing pending output and typeahead to be discarded.
character (typically ^Z, Control-Z) while a process is running stops
that process and returns control to Bash. Typing the “delayed suspend”
character (typically ^Y, Control-Y) causes the process to stop when it
attempts to read input from the terminal, and returns control to Bash.
The user then manipulates the state of this job, using the bg command
to continue it in the background, the fg command to continue it in the
foreground, or the kill command to kill it. The suspend character
takes effect immediately, and has the additional side effect of
discarding any pending output and typeahead. If you want to force a
background process to stop, or stop a process that's not associated with
your terminal session, send it the SIGSTOP signal using kill.
There are a number of ways to refer to a job in the shell. The
character % introduces a job specification (jobspec).
There are a number of ways to refer to a job in the shell. The %
character introduces a job specification (jobspec).
Job number n may be referred to as %n. The symbols %% and %+
refer to the shell's notion of the current job, which is the last job
stopped while it was in the foreground or started in the background. A
single % (with no accompanying job specification) also refers to the
current job. The previous job may be referenced using %-. If there
is only a single job, %+ and %- can both be used to refer to that
job. In output pertaining to jobs (e.g., the output of the jobs
command), the current job is always flagged with a +, and the previous
job with a -.
Job number n may be referred to as %n. A job may also be
referred to using a prefix of the name used to start it, or using a
substring that appears in its command line. For example, %ce refers
to a job whose command name begins with ce. Using %?ce, on the
other hand, refers to any job containing the string ce in its command
line. If the prefix or substring matches more than one job, Bash
reports an error.
A job may also be referred to using a prefix of the name used to
start it, or using a substring that appears in its command line. For
example, %ce refers to a stopped job whose command name begins with
ce. Using %?ce, on the other hand, refers to any job containing the
string ce in its command line. If the prefix or substring matches
more than one job, Bash reports an error.
The symbols %% and %+ refer to the shell's notion of the “current
job”. A single % (with no accompanying job specification) also refers
to the current job. %- refers to the “previous job”. When a job
starts in the background, a job stops while in the foreground, or a job
is resumed in the background, it becomes the current job. The job that
was the current job becomes the previous job. When the current job
terminates, the previous job becomes the current job. If there is only
a single job, %+ and %- can both be used to refer to that job. In
output pertaining to jobs (e.g., the output of the jobs command), the
current job is always marked with a +, and the previous job with a
-.
Simply naming a job can be used to bring it into the foreground: %1
is a synonym for fg %1, bringing job 1 from the background into the
foreground. Similarly, %1 & resumes job 1 in the background,
equivalent to bg %1
equivalent to bg %1.
The shell learns immediately whenever a job changes state. Normally,
Bash waits until it is about to print a prompt before reporting changes
in a job's status so as to not interrupt any other output, though it
will notify of changes in a job's status after a foreground command in a
list completes, before executing the next command. If the -b option
to the set builtin is enabled, Bash reports such changes immediately
(*note The Set Builtin::). Any trap on SIGCHLD is executed for each
child process that exits.
Bash waits until it is about to print a prompt before notifying the user
about changes in a job's status so as to not interrupt any other output,
though it will notify of changes in a job's status after a foreground
command in a list completes, before executing the next command in the
list. If the -b option to the set builtin is enabled, Bash reports
such changes immediately (*note The Set Builtin::). Bash executes any
trap on SIGCHLD for each child process that terminates.
If an attempt to exit Bash is made while jobs are stopped, (or
running, if the checkjobs option is enabled - see *note The Shopt
Builtin::), the shell prints a warning message, and if the checkjobs
option is enabled, lists the jobs and their statuses. The jobs
command may then be used to inspect their status. If a second attempt
to exit is made without an intervening command, Bash does not print
another warning, and any stopped jobs are terminated.
When a job terminates and Bash notifies the user about it, Bash
removes the job from the jobs table. It will not appear in jobs
output, but wait will report its exit status, as long as it's supplied
the process ID associated with the job as an argument. When the table
is empty, job numbers start over at 1.
If a user attempts to exit Bash while jobs are stopped, (or running,
if the checkjobs option is enabled - see *note The Shopt Builtin::),
the shell prints a warning message, and if the checkjobs option is
enabled, lists the jobs and their statuses. The jobs command may then
be used to inspect their status. If the user immediately attempts to
exit again, without an intervening command, Bash does not print another
warning, and terminates any stopped jobs.
When the shell is waiting for a job or process using the wait
builtin, and job control is enabled, wait will return when the job
@@ -8157,21 +8174,22 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
bg [JOBSPEC ...]
Resume each suspended job JOBSPEC in the background, as if it had
been started with &. If JOBSPEC is not supplied, the current job
is used. The return status is zero unless it is run when job
control is not enabled, or, when run with job control enabled, any
JOBSPEC was not found or specifies a job that was started without
job control.
been started with &. If JOBSPEC is not supplied, the shell uses
its notion of the current job. bg returns zero unless it is run
when job control is not enabled, or, when run with job control
enabled, any JOBSPEC was not found or specifies a job that was
started without job control.
fg
fg [JOBSPEC]
Resume the job JOBSPEC in the foreground and make it the current
job. If JOBSPEC is not supplied, resume the current job. The
return status is that of the command placed into the foreground, or
non-zero if run when job control is disabled or, when run with job
control enabled, JOBSPEC does not specify a valid job or JOBSPEC
specifies a job that was started without job control.
job. If JOBSPEC is not supplied, fg resumes the current job.
The return status is that of the command placed into the
foreground, or non-zero if run when job control is disabled or,
when run with job control enabled, JOBSPEC does not specify a valid
job or JOBSPEC specifies a job that was started without job
control.
jobs
jobs [-lnprs] [JOBSPEC]
@@ -8198,7 +8216,8 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
If JOBSPEC is supplied, jobs restricts output to information
about that job. If JOBSPEC is not supplied, jobs lists the
status of all jobs.
status of all jobs. The return status is zero unless an invalid
option is encountered or an invalid JOBSPEC is supplied.
If the -x option is supplied, jobs replaces any JOBSPEC found
in COMMAND or ARGUMENTS with the corresponding process group ID,
@@ -8206,21 +8225,25 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
status.
kill
kill [-s SIGSPEC] [-n SIGNUM] [-SIGSPEC] JOBSPEC or PID
kill [-s SIGSPEC] [-n SIGNUM] [-SIGSPEC] ID [...]
kill -l|-L [EXIT_STATUS]
Send a signal specified by SIGSPEC or SIGNUM to the process named
by job specification JOBSPEC or process ID PID. SIGSPEC is either
a case-insensitive signal name such as SIGINT (with or without
the SIG prefix) or a signal number; SIGNUM is a signal number.
If SIGSPEC and SIGNUM are not present, kill sends SIGTERM.
Send a signal specified by SIGSPEC or SIGNUM to the processes named
by each ID. Each ID may be a job specification JOBSPEC or process
ID PID. SIGSPEC is either a case-insensitive signal name such as
SIGINT (with or without the SIG prefix) or a signal number;
SIGNUM is a signal number. If SIGSPEC and SIGNUM are not present,
kill sends SIGTERM.
The -l option lists the signal names. If any arguments are
supplied when -l is supplied, the names of the signals
corresponding to the arguments are listed, and the return status is
supplied when -l is supplied, kill lists the names of the
signals corresponding to the arguments, and the return status is
zero. EXIT_STATUS is a number specifying a signal number or the
exit status of a process terminated by a signal. The -L option
is equivalent to -l.
exit status of a process terminated by a signal; if it is supplied,
kill prints the name of the signal that caused the process to
terminate. kill assumes that process exit statuses are greater
than 128; anything less than that is a signal number. The -L
option is equivalent to -l.
The return status is zero if at least one signal was successfully
sent, or non-zero if an error occurs or an invalid option is
@@ -8230,9 +8253,9 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
wait [-fn] [-p VARNAME] [ID ...]
Wait until the child process specified by each ID exits and return
the exit status of the last ID. Each ID may be a PID or job
specification JOBSPEC; if a job spec is supplied, wait waits for
all processes in the job.
the exit status of the last ID. Each ID may be a process ID PID or
a job specification JOBSPEC; if a jobspec is supplied, wait waits
for all processes in the job.
If no options or IDs are supplied, wait waits for all running
background jobs and the last-executed process substitution, if its
@@ -8244,11 +8267,11 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
is a child of the shell, or if no arguments are supplied and the
shell has no unwaited-for children, the exit status is 127.
If the -p option is supplied, the process or job identifier of
the job for which the exit status is returned is assigned to the
If the -p option is supplied, wait assigns the process or job
identifier of the job for which the exit status is returned to the
variable VARNAME named by the option argument. The variable, which
cannot be readonly, will be unset initially, before any assignment.
This is useful only when the -n option is supplied.
This is useful only when used with the -n option.
Supplying the -f option, when job control is enabled, forces
wait to wait for each ID to terminate before returning its
@@ -8264,16 +8287,18 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
disown [-ar] [-h] [ID ...]
Without options, remove each ID from the table of active jobs.
Each ID may be a PID or job specification JOBSPEC; if ID is a PID,
disown uses the job containing PID. If the -h option is
supplied, the job is not removed from the table, but is marked so
that SIGHUP is not sent to the job if the shell receives a
SIGHUP. If ID is not present, and neither the -a nor the -r
option is supplied, disown removes the current job.
Each ID may be a job specification JOBSPEC or a process ID PID; if
ID is a PID, disown uses the job containing PID as JOBSPEC.
If the -h option is supplied, disown does not remove the jobs
corresponding to each id from the jobs table, but rather marks
them so the shell does not send SIGHUP to the job if the shell
receives a SIGHUP.
If no ID is supplied, the -a option means to remove or mark all
jobs; the -r option without an ID argument restricts operation to
running jobs.
jobs; the -r option without an ID argument removes or marks
running jobs. If no ID is supplied, and neither the -a nor the
-r option is supplied, disown removes or marks the current job.
The return value is 0 unless an ID does not specify a valid job.
@@ -8297,19 +8322,20 @@ File: bashref.info, Node: Job Control Variables, Prev: Job Control Builtins,
auto_resume
This variable controls how the shell interacts with the user and
job control. If this variable exists then single-word simple
commands without redirections are treated as candidates for
resumption of an existing job. There is no ambiguity allowed; if
there is more than one job beginning with the string typed, then
the most recently accessed job is selected. The name of a stopped
job, in this context, is the command line used to start it. If
this variable is set to the value exact, the string supplied must
match the name of a stopped job exactly; if set to substring, the
string supplied needs to match a substring of the name of a stopped
job. The substring value provides functionality analogous to the
%? job ID (*note Job Control Basics::). If set to any other
value, the supplied string must be a prefix of a stopped job's
name; this provides functionality analogous to the % job ID.
job control. If this variable exists then simple commands
consisting of only a single word, without redirections, are treated
as candidates for resumption of an existing job. There is no
ambiguity allowed; if there is more than one job beginning with or
containing the word, then this selects the most recently accessed
job. The name of a stopped job, in this context, is the command
line used to start it, as displayed by jobs. If this variable is
set to the value exact, the word must match the name of a stopped
job exactly; if set to substring, the word needs to match a
substring of the name of a stopped job. The substring value
provides functionality analogous to the %?string job ID (*note
Job Control Basics::). If set to any other value (e.g., prefix),
the word must be a prefix of a stopped job's name; this provides
functionality analogous to the %string job ID.

File: bashref.info, Node: Command Line Editing, Next: Using History Interactively, Prev: Job Control, Up: Top
@@ -9091,7 +9117,7 @@ Key Bindings
This key binding syntax recognizes a number of symbolic
character names: DEL, ESC, ESCAPE, LFD, NEWLINE, RET, RETURN,
RUBOUT, SPACE, SPC, and TAB.
RUBOUT (a destructive backspace), SPACE, SPC, and TAB.
"KEYSEQ": FUNCTION-NAME or MACRO
KEYSEQ differs from KEYNAME above in that strings denoting an
@@ -9583,7 +9609,8 @@ File: bashref.info, Node: Commands For Text, Next: Commands For Killing, Prev
delete-char (C-d)
Delete the character at point. If this function is bound to the
same character as the tty EOF character, as C-d commonly is, see
above for the effects.
above for the effects. This may also be bound to the Delete key on
some keyboards.
backward-delete-char (Rubout)
Delete the character behind the cursor. A numeric argument means
@@ -12643,7 +12670,7 @@ D.1 Index of Shell Builtin Commands
* dirs: Directory Stack Builtins.
(line 7)
* disown: Job Control Builtins.
(line 114)
(line 120)
* echo: Bash Builtins. (line 284)
* enable: Bash Builtins. (line 337)
* eval: Bourne Shell Builtins.
@@ -12668,9 +12695,9 @@ D.1 Index of Shell Builtin Commands
* history: Bash History Builtins.
(line 59)
* jobs: Job Control Builtins.
(line 27)
(line 28)
* kill: Job Control Builtins.
(line 59)
(line 61)
* let: Bash Builtins. (line 394)
* local: Bash Builtins. (line 403)
* logout: Bash Builtins. (line 428)
@@ -12694,7 +12721,7 @@ D.1 Index of Shell Builtin Commands
* shopt: The Shopt Builtin. (line 9)
* source: Bash Builtins. (line 668)
* suspend: Job Control Builtins.
(line 131)
(line 139)
* test: Bourne Shell Builtins.
(line 333)
* times: Bourne Shell Builtins.
@@ -12712,7 +12739,7 @@ D.1 Index of Shell Builtin Commands
* unset: Bourne Shell Builtins.
(line 528)
* wait: Job Control Builtins.
(line 80)
(line 86)

File: bashref.info, Node: Reserved Word Index, Next: Variable Index, Prev: Builtin Index, Up: Indexes
@@ -13022,7 +13049,7 @@ D.4 Function Index
* alias-expand-line (): Miscellaneous Commands.
(line 133)
* backward-char (C-b): Commands For Moving. (line 17)
* backward-delete-char (Rubout): Commands For Text. (line 17)
* backward-delete-char (Rubout): Commands For Text. (line 18)
* backward-kill-line (C-x Rubout): Commands For Killing.
(line 11)
* backward-kill-word (M-<DEL>): Commands For Killing.
@@ -13031,9 +13058,9 @@ D.4 Function Index
* beginning-of-history (M-<): Commands For History.
(line 20)
* beginning-of-line (C-a): Commands For Moving. (line 6)
* bracketed-paste-begin (): Commands For Text. (line 34)
* bracketed-paste-begin (): Commands For Text. (line 35)
* call-last-kbd-macro (C-x e): Keyboard Macros. (line 13)
* capitalize-word (M-c): Commands For Text. (line 72)
* capitalize-word (M-c): Commands For Text. (line 73)
* character-search (C-]): Miscellaneous Commands.
(line 41)
* character-search-backward (M-C-]): Miscellaneous Commands.
@@ -13072,7 +13099,7 @@ D.4 Function Index
(line 147)
* do-lowercase-version (M-A, M-B, M-X, ...): Miscellaneous Commands.
(line 14)
* downcase-word (M-l): Commands For Text. (line 68)
* downcase-word (M-l): Commands For Text. (line 69)
* dump-functions (): Miscellaneous Commands.
(line 71)
* dump-macros (): Miscellaneous Commands.
@@ -13094,7 +13121,7 @@ D.4 Function Index
(line 90)
* fetch-history (): Commands For History.
(line 106)
* forward-backward-delete-char (): Commands For Text. (line 22)
* forward-backward-delete-char (): Commands For Text. (line 23)
* forward-char (C-f): Commands For Moving. (line 14)
* forward-search-history (C-s): Commands For History.
(line 33)
@@ -13146,7 +13173,7 @@ D.4 Function Index
(line 39)
* operate-and-get-next (C-o): Commands For History.
(line 99)
* overwrite-mode (): Commands For Text. (line 76)
* overwrite-mode (): Commands For Text. (line 77)
* possible-command-completions (C-x !): Commands For Completion.
(line 87)
* possible-completions (M-?): Commands For Completion.
@@ -13165,7 +13192,7 @@ D.4 Function Index
(line 13)
* previous-screen-line (): Commands For Moving. (line 36)
* print-last-kbd-macro (): Keyboard Macros. (line 17)
* quoted-insert (C-q or C-v): Commands For Text. (line 27)
* quoted-insert (C-q or C-v): Commands For Text. (line 28)
* re-read-init-file (C-x C-r): Miscellaneous Commands.
(line 6)
* redraw-current-line (): Commands For Moving. (line 59)
@@ -13173,7 +13200,7 @@ D.4 Function Index
(line 27)
* revert-line (M-r): Miscellaneous Commands.
(line 26)
* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 31)
* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 32)
* set-mark (C-@): Miscellaneous Commands.
(line 33)
* shell-backward-kill-word (): Commands For Killing.
@@ -13184,7 +13211,7 @@ D.4 Function Index
* shell-forward-word (M-C-f): Commands For Moving. (line 28)
* shell-kill-word (M-C-d): Commands For Killing.
(line 32)
* shell-transpose-words (M-C-t): Commands For Text. (line 57)
* shell-transpose-words (M-C-t): Commands For Text. (line 58)
* skip-csi-sequence (): Miscellaneous Commands.
(line 50)
* spell-correct-word (C-x s): Miscellaneous Commands.
@@ -13192,8 +13219,8 @@ D.4 Function Index
* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
* tilde-expand (M-&): Miscellaneous Commands.
(line 30)
* transpose-chars (C-t): Commands For Text. (line 46)
* transpose-words (M-t): Commands For Text. (line 52)
* transpose-chars (C-t): Commands For Text. (line 47)
* transpose-words (M-t): Commands For Text. (line 53)
* undo (C-_ or C-x C-u): Miscellaneous Commands.
(line 23)
* universal-argument (): Numeric Arguments. (line 10)
@@ -13203,7 +13230,7 @@ D.4 Function Index
(line 16)
* unix-word-rubout (C-w): Commands For Killing.
(line 41)
* upcase-word (M-u): Commands For Text. (line 64)
* upcase-word (M-u): Commands For Text. (line 65)
* yank (C-y): Commands For Killing.
(line 72)
* yank-last-arg (M-. or M-_): Commands For History.
@@ -13356,7 +13383,7 @@ D.5 Concept Index
* quoting: Quoting. (line 6)
* quoting, ANSI: ANSI-C Quoting. (line 6)
* Readline, how to use: Job Control Variables.
(line 22)
(line 23)
* redirection: Redirections. (line 6)
* reserved word: Definitions. (line 70)
* reserved words: Reserved Words. (line 6)
@@ -13425,104 +13452,104 @@ Node: Special Parameters70393
Node: Shell Expansions73857
Node: Brace Expansion76049
Node: Tilde Expansion78780
Node: Shell Parameter Expansion81725
Node: Command Substitution101500
Node: Arithmetic Expansion105036
Node: Process Substitution106052
Node: Word Splitting107171
Node: Filename Expansion109271
Node: Pattern Matching112542
Node: Quote Removal117879
Node: Redirections118186
Node: Executing Commands128404
Node: Simple Command Expansion129074
Node: Command Search and Execution131185
Node: Command Execution Environment133632
Node: Environment137083
Node: Exit Status138989
Node: Signals141050
Node: Shell Scripts144951
Node: Shell Builtin Commands148252
Node: Bourne Shell Builtins150366
Node: Bash Builtins176670
Node: Modifying Shell Behavior213121
Node: The Set Builtin213466
Node: The Shopt Builtin225405
Node: Special Builtins242460
Node: Shell Variables243452
Node: Bourne Shell Variables243889
Node: Bash Variables246400
Node: Bash Features284660
Node: Invoking Bash285677
Node: Bash Startup Files292106
Node: Interactive Shells297422
Node: What is an Interactive Shell?297833
Node: Is this Shell Interactive?298498
Node: Interactive Shell Behavior299325
Node: Bash Conditional Expressions303089
Node: Shell Arithmetic308309
Node: Aliases311651
Node: Arrays314616
Node: The Directory Stack321682
Node: Directory Stack Builtins322482
Node: Controlling the Prompt326930
Node: The Restricted Shell329817
Node: Bash POSIX Mode332702
Node: Shell Compatibility Mode350846
Node: Job Control359860
Node: Job Control Basics360320
Node: Job Control Builtins365631
Node: Job Control Variables371802
Node: Command Line Editing372973
Node: Introduction and Notation374679
Node: Readline Interaction377032
Node: Readline Bare Essentials378223
Node: Readline Movement Commands380034
Node: Readline Killing Commands381033
Node: Readline Arguments383059
Node: Searching384119
Node: Readline Init File386383
Node: Readline Init File Syntax387690
Node: Conditional Init Constructs414413
Node: Sample Init File418801
Node: Bindable Readline Commands421925
Node: Commands For Moving423400
Node: Commands For History425630
Node: Commands For Text430886
Node: Commands For Killing434948
Node: Numeric Arguments437739
Node: Commands For Completion438894
Node: Keyboard Macros443397
Node: Miscellaneous Commands444101
Node: Readline vi Mode450657
Node: Programmable Completion451637
Node: Programmable Completion Builtins459692
Node: A Programmable Completion Example471360
Node: Using History Interactively476708
Node: Bash History Facilities477392
Node: Bash History Builtins481130
Node: History Interaction487604
Node: Event Designators492561
Node: Word Designators494142
Node: Modifiers496453
Node: Installing Bash498397
Node: Basic Installation499516
Node: Compilers and Options503395
Node: Compiling For Multiple Architectures504148
Node: Installation Names505900
Node: Specifying the System Type508137
Node: Sharing Defaults508886
Node: Operation Controls509603
Node: Optional Features510625
Node: Reporting Bugs523008
Node: Major Differences From The Bourne Shell524369
Node: GNU Free Documentation License545792
Node: Indexes570972
Node: Builtin Index571426
Node: Reserved Word Index578527
Node: Variable Index580975
Node: Function Index598391
Node: Concept Index612250
Node: Shell Parameter Expansion81738
Node: Command Substitution101509
Node: Arithmetic Expansion105045
Node: Process Substitution106061
Node: Word Splitting107180
Node: Filename Expansion109280
Node: Pattern Matching112551
Node: Quote Removal117888
Node: Redirections118195
Node: Executing Commands128413
Node: Simple Command Expansion129083
Node: Command Search and Execution131194
Node: Command Execution Environment133641
Node: Environment137092
Node: Exit Status138998
Node: Signals141059
Node: Shell Scripts144960
Node: Shell Builtin Commands148261
Node: Bourne Shell Builtins150375
Node: Bash Builtins176679
Node: Modifying Shell Behavior213130
Node: The Set Builtin213475
Node: The Shopt Builtin225414
Node: Special Builtins242469
Node: Shell Variables243461
Node: Bourne Shell Variables243898
Node: Bash Variables246409
Node: Bash Features284669
Node: Invoking Bash285686
Node: Bash Startup Files292115
Node: Interactive Shells297431
Node: What is an Interactive Shell?297842
Node: Is this Shell Interactive?298507
Node: Interactive Shell Behavior299334
Node: Bash Conditional Expressions303098
Node: Shell Arithmetic308318
Node: Aliases311660
Node: Arrays314798
Node: The Directory Stack321864
Node: Directory Stack Builtins322664
Node: Controlling the Prompt327112
Node: The Restricted Shell329999
Node: Bash POSIX Mode332884
Node: Shell Compatibility Mode351028
Node: Job Control360042
Node: Job Control Basics360502
Node: Job Control Builtins366781
Node: Job Control Variables373466
Node: Command Line Editing374700
Node: Introduction and Notation376406
Node: Readline Interaction378759
Node: Readline Bare Essentials379950
Node: Readline Movement Commands381761
Node: Readline Killing Commands382760
Node: Readline Arguments384786
Node: Searching385846
Node: Readline Init File388110
Node: Readline Init File Syntax389417
Node: Conditional Init Constructs416166
Node: Sample Init File420554
Node: Bindable Readline Commands423678
Node: Commands For Moving425153
Node: Commands For History427383
Node: Commands For Text432639
Node: Commands For Killing436767
Node: Numeric Arguments439558
Node: Commands For Completion440713
Node: Keyboard Macros445216
Node: Miscellaneous Commands445920
Node: Readline vi Mode452476
Node: Programmable Completion453456
Node: Programmable Completion Builtins461511
Node: A Programmable Completion Example473179
Node: Using History Interactively478527
Node: Bash History Facilities479211
Node: Bash History Builtins482949
Node: History Interaction489423
Node: Event Designators494380
Node: Word Designators495961
Node: Modifiers498272
Node: Installing Bash500216
Node: Basic Installation501335
Node: Compilers and Options505214
Node: Compiling For Multiple Architectures505967
Node: Installation Names507719
Node: Specifying the System Type509956
Node: Sharing Defaults510705
Node: Operation Controls511422
Node: Optional Features512444
Node: Reporting Bugs524827
Node: Major Differences From The Bourne Shell526188
Node: GNU Free Documentation License547611
Node: Indexes572791
Node: Builtin Index573245
Node: Reserved Word Index580346
Node: Variable Index582794
Node: Function Index600210
Node: Concept Index614069

End Tag Table
+67 -43
View File
@@ -1,12 +1,11 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/MacPorts 2024.70613_0) (preloaded format=etex 2024.4.9) 11 OCT 2024 09:00
This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/MacPorts 2024.70613_0) (preloaded format=pdfetex 2024.4.9) 14 OCT 2024 17:00
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\nonstopmode \input /usr/local/src/bash/bash-20241007/doc/bashref.texi \input
/usr/local/src/bash/bash-20241007/doc/bashref.texi
(/usr/local/src/bash/bash-20241007/doc/bashref.texi
(/usr/local/src/bash/bash-20241007/doc/texinfo.tex
**\input /usr/local/src/bash/bash-20241012/doc/bashref.texi
(/usr/local/src/bash/bash-20241012/doc/bashref.texi
(/usr/local/src/bash/bash-20241012/doc/texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -162,20 +161,23 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
texinfo.tex: doing @include of version.texi
(/usr/local/src/bash/bash-20241007/doc/version.texi) [1] [2]
(/usr/local/build/bash/bash-20241007/doc/bashref.toc [-1] [-2] [-3]) [-4]
Chapter 1
(/usr/local/src/bash/bash-20241012/doc/version.texi) [1{/opt/local/var/db/texmf
/fonts/map/pdftex/updmap/pdftex.map}] [2]
(/usr/local/build/bash/bash-20241012/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20241012/doc/bashref.toc)
(/usr/local/build/bash/bash-20241012/doc/bashref.toc) Chapter 1
\openout0 = `bashref.toc'.
(/usr/local/build/bash/bash-20241007/doc/bashref.aux)
(/usr/local/build/bash/bash-20241012/doc/bashref.aux)
\openout1 = `bashref.aux'.
[1] Chapter 2
[2]
[1] Chapter 2 [2]
@cpindfile=@write2
\openout2 = `bashref.cp'.
[3] Chapter 3 [4] [5] [6] [7]
[3] Chapter 3 [4] [5] [6] [7]
@vrindfile=@write3
\openout3 = `bashref.vr'.
@@ -219,16 +221,17 @@ Overfull \hbox (5.95723pt too wide) in paragraph at lines 737--738
@rwindfile=@write4
\openout4 = `bashref.rw'.
[10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23]
[24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38]
[39] [40] [41] [42] [43] [44] [45] [46] [47] [48] Chapter 4 [49]
[10] [11] [12] [13] [14] [15] [16] [17] [18] [19{/opt/local/share/texmf-texliv
e/fonts/enc/dvips/cm-super/cm-super-t1.enc}] [20] [21] [22] [23] [24]
[25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39]
[40] [41] [42] [43] [44] [45] [46] [47] [48] Chapter 4 [49]
@btindfile=@write5
\openout5 = `bashref.bt'.
[50] [51]
[52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66]
[67] [68] [69] [70]
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5702--5702
[50] [51] [52]
[53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67]
[68] [69] [70]
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5703--5703
[]@texttt set [-abefhkmnptuvxBCEHPT] [-o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -241,7 +244,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5702--5702
.etc.
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5703--5703
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5704--5704
[]@texttt set [+abefhkmnptuvxBCEHPT] [+o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -257,12 +260,12 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5703--5703
[84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] Chapter 6
[97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109]
[110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121]
Chapter 7 [122] [123] [124] [125]
Chapter 7 [122] [123] [124] [125] [126]
texinfo.tex: doing @include of rluser.texi
(/usr/local/src/bash/bash-20241007/lib/readline/doc/rluser.texi Chapter 8
[126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137]
(/usr/local/src/bash/bash-20241012/lib/readline/doc/rluser.texi Chapter 8
[127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138]
Underfull \hbox (badness 7540) in paragraph at lines 959--965
[]@textrm In the ex-am-ple above, @textttsl C-u[] @textrm is bound to the func
-tion
@@ -288,7 +291,7 @@ e func-tion
.@texttt v
.etc.
[138] [139] [140] [141]
[139] [140] [141] [142]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1204--1204
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[]
@@ -301,19 +304,19 @@ gnored[]
.@texttt t
.etc.
[142] [143]
[143] [144]
@fnindfile=@write6
\openout6 = `bashref.fn'.
[144] [145] [146] [147] [148] [149] [150] [151] [152] [153]
[154] [155] [156] [157] [158] [159] [160] [161] [162])
[145] [146] [147] [148] [149] [150] [151] [152] [153] [154]
[155] [156] [157] [158] [159] [160] [161] [162] [163])
texinfo.tex: doing @include of hsuser.texi
(/usr/local/src/bash/bash-20241007/lib/readline/doc/hsuser.texi Chapter 9
[163] [164] [165] [166] [167] [168] [169]) Chapter 10 [170] [171] [172]
[173] [174]
Underfull \hbox (badness 10000) in paragraph at lines 10283--10292
(/usr/local/src/bash/bash-20241012/lib/readline/doc/hsuser.texi Chapter 9
[164] [165] [166] [167] [168] [169] [170]) Chapter 10 [171] [172] [173]
[174] [175]
Underfull \hbox (badness 10000) in paragraph at lines 10347--10356
[]@textrm All of the fol-low-ing op-tions ex-cept for `@texttt alt-array-implem
entation[]@textrm '[],
@@ -326,7 +329,7 @@ entation[]@textrm '[],
.etc.
Underfull \hbox (badness 10000) in paragraph at lines 10283--10292
Underfull \hbox (badness 10000) in paragraph at lines 10347--10356
@textrm `@texttt disabled-builtins[]@textrm '[], `@texttt direxpand-default[]@t
extrm '[], `@texttt strict-posix-default[]@textrm '[], and
@@ -338,21 +341,42 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
.@texttt a
.etc.
[175] [176] [177] [178] Appendix A [179] Appendix B [180] [181] [182] [183]
[184] [185] [186] Appendix C [187]
[176] [177] [178] [179] Appendix A [180] Appendix B [181] [182] [183] [184]
[185] [186] [187] Appendix C [188]
texinfo.tex: doing @include of fdl.texi
(/usr/local/src/bash/bash-20241007/doc/fdl.texi [188] [189] [190] [191]
[192] [193] [194]) Appendix D [195] [196] [197] [198] [199] [200] [201]
[202] [203] [204] )
(/usr/local/src/bash/bash-20241012/doc/fdl.texi [189] [190] [191] [192]
[193] [194] [195]) Appendix D [196] [197] [198] [199] [200] [201] [202]
[203] [204] [205] )
Here is how much of TeX's memory you used:
3531 strings out of 495850
40273 string characters out of 6172145
88586 words of memory out of 5000000
4879 multiletter control sequences out of 15000+600000
4113 strings out of 495840
47653 string characters out of 6171739
144667 words of memory out of 5000000
5048 multiletter control sequences out of 15000+600000
34315 words of font info for 116 fonts, out of 8000000 for 9000
701 hyphenation exceptions out of 8191
16i,6n,16p,402b,942s stack positions out of 10000i,1000n,20000p,200000b,200000s
16i,6n,16p,331b,983s stack positions out of 10000i,1000n,20000p,200000b,200000s
</opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/
cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cm
csc10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi10
.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi12.pfb>
</opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi9.pfb></opt/
local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr10.pfb></opt/local/
share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr9.pfb></opt/local/share/t
exmf-texlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb></opt/local/share/texmf-
texlive/fonts/type1/public/amsfonts/cm/cmsltt10.pfb></opt/local/share/texmf-tex
live/fonts/type1/public/amsfonts/cm/cmsy10.pfb></opt/local/share/texmf-texlive/
fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-texlive/fonts
/type1/public/amsfonts/cm/cmtt10.pfb></opt/local/share/texmf-texlive/fonts/type
1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
lic/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm
-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm-super
/sfrm1440.pfb>
Output written on bashref.pdf (211 pages, 844363 bytes).
PDF statistics:
2923 PDF objects out of 2984 (max. 8388607)
2664 compressed objects within 27 object streams
339 named destinations out of 1000 (max. 500000)
1157 words of extra memory for PDF output out of 10000 (max. 10000000)
Output written on bashref.dvi (210 pages, 880460 bytes).
BIN
View File
Binary file not shown.
+1079 -1026
View File
File diff suppressed because it is too large Load Diff
+162 -98
View File
@@ -2126,7 +2126,7 @@ corresponding element from the directory stack, as it would be displayed
by the @code{dirs} builtin invoked with the characters following tilde
in the tilde-prefix as an argument (@pxref{The Directory Stack}).
If the tilde-prefix, sans the tilde, consists of a number without a
leading @samp{+} or @samp{-}, @samp{+} is assumed.
leading @samp{+} or @samp{-}, tilde expansion assumes @samp{+}.
The results of tilde expansion are treated as if they were quoted, so
the replacement is not subject to word splitting and filename expansion.
@@ -2262,7 +2262,7 @@ unset-or-null
@item $@{@var{parameter}:=@var{word}@}
If @var{parameter} is unset or null, the expansion of @var{word}
is assigned to @var{parameter},
and the result of the expansion
and the result of the expansion
is the final value of @var{parameter}.
Positional parameters and special parameters may not be assigned
in this way.
@@ -2280,9 +2280,10 @@ DEFAULT
@item $@{@var{parameter}:?@var{word}@}
If @var{parameter}
is null or unset, the expansion of @var{word} (or a message
is null or unset, the shell writes
the expansion of @var{word} (or a message
to that effect if @var{word}
is not present) is written to the standard error and the shell, if it
is not present) to the standard error and, if it
is not interactive, exits with a non-zero status.
An interactive shell does not exit, but does not execute the command
associated with the expansion.
@@ -8291,9 +8292,13 @@ before executing any of the commands on that line or the compound command.
Aliases are expanded when a command is read, not when it is executed.
Therefore, an
alias definition appearing on the same line as another
command does not take effect until the shell reads the next line of input.
command does not take effect until the shell reads the next line of input,
and an alias definition in a compound command does not take
effect until the shell parses and executes the entire compound command.
The commands following the alias definition
on that line are not affected by the new alias.
on that line,
or in the rest of a compound command,
are not affected by the new alias.
This behavior is also an issue when functions are executed.
Aliases are expanded when a function definition is read,
not when the function is executed, because a function definition
@@ -9536,14 +9541,18 @@ Bash allows you to access its facilities.
Job control
refers to the ability to selectively stop (suspend)
the execution of processes and continue (resume)
their execution at a later point. A user typically employs
their execution at a later point.
A user typically employs
this facility via an interactive interface supplied jointly
by the operating system kernel's terminal driver and Bash.
The shell associates a @var{job} with each pipeline. It keeps a
table of currently executing jobs, which may be listed with the
@code{jobs} command. When Bash starts a job
asynchronously, it prints a line that looks
The shell associates a @var{job} with each pipeline.
It keeps a
table of currently executing jobs, which the
@code{jobs} command will display.
Each job has a @dfn{job number}, which @code{jobs} displays between brackets.
Job numbers start at 1.
When Bash starts a job asynchronously, it prints a line that looks
like:
@example
[1] 25647
@@ -9551,19 +9560,26 @@ like:
@noindent
indicating that this job is job number 1 and that the process @sc{id}
of the last process in the pipeline associated with this job is
25647. All of the processes in a single pipeline are members of
the same job. Bash uses the @var{job} abstraction as the
basis for job control.
25647.
All of the processes in a single pipeline are members of
the same job.
Bash uses the @var{job} abstraction as the basis for job control.
To facilitate the implementation of the user interface to job
control, the operating system maintains the notion of a current terminal
process group @sc{id}. Members of this process group (processes whose
To facilitate the implementation of the user interface to job control,
each process has a @dfn{process group @sc{id}}, and
the operating system maintains the notion of a current terminal
process group @sc{id}.
Processes that have the same process group ID are said to be part of
the same @dfn{process group}.
Members of the foreground process group (processes whose
process group @sc{id} is equal to the current terminal process group
@sc{id}) receive keyboard-generated signals such as @code{SIGINT}.
These processes are said to be in the foreground. Background
processes are those whose process group @sc{id} differs from the
terminal's; such processes are immune to keyboard-generated
signals. Only foreground processes are allowed to read from or, if
Processes in the foreground process group are said to be
foreground processes.
Background processes
are those whose process group @sc{id} differs from the terminal's;
such processes are immune to keyboard-generated signals.
Only foreground processes are allowed to read from or, if
the user so specifies with @code{stty tostop}, write to the terminal.
Background processes which attempt to
read from (write to when @code{tostop} is in effect) the
@@ -9572,72 +9588,101 @@ signal by the kernel's terminal driver,
which, unless caught, suspends the process.
If the operating system on which Bash is running supports
job control, Bash contains facilities to use it. Typing the
job control, Bash contains facilities to use it.
Typing the
@dfn{suspend} character (typically @samp{^Z}, Control-Z) while a
process is running causes that process to be stopped and returns
control to Bash. Typing the @dfn{delayed suspend} character
(typically @samp{^Y}, Control-Y) causes the process to be stopped
when it attempts to read input from the terminal, and control to
be returned to Bash. The user then manipulates the state of
this job, using the @code{bg} command to continue it in the
background, the @code{fg} command to continue it in the
foreground, or the @code{kill} command to kill it. A @samp{^Z}
process is running stops that process
and returns control to Bash.
Typing the @dfn{delayed suspend} character
(typically @samp{^Y}, Control-Y) causes the process to stop
when it attempts to read input from the terminal,
and returns control to Bash.
The user then manipulates the state of
this job, using
the @code{bg} command to continue it in the background,
the @code{fg} command to continue it in the foreground, or
the @code{kill} command to kill it.
The suspend character
takes effect immediately, and has the additional side effect of
causing pending output and typeahead to be discarded.
discarding any pending output and typeahead.
If you want to force a background process to stop, or stop a process
that's not associated with your terminal session,
send it the @code{SIGSTOP} signal using @code{kill}.
There are a number of ways to refer to a job in the shell. The
character @samp{%} introduces a job specification (@dfn{jobspec}).
There are a number of ways to refer to a job in the shell.
The @samp{%} character introduces a @dfn{job specification} (jobspec).
Job number @code{n} may be referred to as @samp{%n}.
A job may also be referred to
using a prefix of the name used to start it,
or using a substring that appears in its command line.
For example, @samp{%ce} refers
to a job whose command name begins with @samp{ce}.
Using @samp{%?ce}, on the
other hand, refers to any job containing the string @samp{ce} in
its command line.
If the prefix or substring matches more than one job,
Bash reports an error.
The symbols @samp{%%} and @samp{%+} refer to the shell's notion of the
current job, which is the last job stopped while it was in the foreground
or started in the background.
@dfn{current job}.
A single @samp{%} (with no accompanying job specification) also refers
to the current job.
The previous job may be referenced using @samp{%-}.
@samp{%-} refers to the @dfn{previous job}.
When a job starts in the background,
a job stops while in the foreground,
or a job is resumed in the background,
it becomes the current job.
The job that was the current job becomes the previous job.
When the current job terminates, the previous job becomes the
current job.
If there is only a single job, @samp{%+} and @samp{%-} can both be used
to refer to that job.
In output pertaining to jobs (e.g., the output of the @code{jobs}
command), the current job is always flagged with a @samp{+}, and the
command), the current job is always marked with a @samp{+}, and the
previous job with a @samp{-}.
A job may also be referred to
using a prefix of the name used to start it, or using a substring
that appears in its command line. For example, @samp{%ce} refers
to a stopped job whose command name begins with @samp{ce}.
Using @samp{%?ce}, on the
other hand, refers to any job containing the string @samp{ce} in
its command line. If the prefix or substring matches more than one job,
Bash reports an error.
Simply naming a job can be used to bring it into the foreground:
@samp{%1} is a synonym for @samp{fg %1}, bringing job 1 from the
background into the foreground. Similarly, @samp{%1 &} resumes
job 1 in the background, equivalent to @samp{bg %1}
background into the foreground.
Similarly, @samp{%1 &} resumes
job 1 in the background, equivalent to @samp{bg %1}.
The shell learns immediately whenever a job changes state.
Normally, Bash waits until it is about to print a prompt
before reporting changes in a job's status so as to not interrupt
Normally, Bash waits until it is about to print a prompt before
notifying the user about
changes in a job's status so as to not interrupt
any other output,
though it will notify of changes in a job's status after a
foreground command in
a list completes, before executing the next command.
a list completes, before executing the next command in the list.
If the @option{-b} option to the @code{set} builtin is enabled,
Bash reports such changes immediately (@pxref{The Set Builtin}).
Any trap on @code{SIGCHLD} is executed for each child process
that exits.
Bash executes any trap on @code{SIGCHLD}
for each child process that terminates.
If an attempt to exit Bash is made while jobs are stopped, (or running, if
When a job terminates and Bash notifies the user about it,
Bash removes the job from the jobs table.
It will not appear in @code{jobs} output, but @code{wait} will
report its exit status, as long as it's supplied the process ID
associated with the job as an argument.
When the table is empty, job numbers start over at 1.
If a user attempts to exit
Bash while jobs are stopped, (or running, if
the @code{checkjobs} option is enabled -- see @ref{The Shopt Builtin}), the
shell prints a warning message, and if the @code{checkjobs} option is
enabled, lists the jobs and their statuses.
The @code{jobs} command may then be used to inspect their status.
If a second attempt to exit is made without an intervening command,
Bash does not print another warning, and any stopped jobs are terminated.
If the user immediately attempts to exit again,
without an intervening command,
Bash does not print another warning, and
terminates any stopped jobs.
When the shell is waiting for a job or process using the @code{wait}
builtin, and job control is enabled, @code{wait} will return when the
job changes state. The @option{-f} option causes @code{wait} to wait
job changes state.
The @option{-f} option causes @code{wait} to wait
until the job or process terminates before returning.
@node Job Control Builtins
@@ -9653,8 +9698,9 @@ bg [@var{jobspec} @dots{}]
Resume each suspended job @var{jobspec} in the background, as if it
had been started with @samp{&}.
If @var{jobspec} is not supplied, the current job is used.
The return status is zero unless it is run when job control is not
If @var{jobspec} is not supplied, the shell uses its
notion of the current job.
@code{bg} returns zero unless it is run when job control is not
enabled, or, when run with job control enabled, any
@var{jobspec} was not found or specifies a job
that was started without job control.
@@ -9666,7 +9712,7 @@ fg [@var{jobspec}]
@end example
Resume the job @var{jobspec} in the foreground and make it the current job.
If @var{jobspec} is not supplied, resume the current job.
If @var{jobspec} is not supplied, @code{fg} resumes the current job.
The return status is that of the command placed into the foreground,
or non-zero if run when job control is disabled or, when run with
job control enabled, @var{jobspec} does not specify a valid job or
@@ -9703,6 +9749,10 @@ Display only stopped jobs.
If @var{jobspec} is supplied,
@code{jobs} restricts output to information about that job.
If @var{jobspec} is not supplied, @code{jobs} lists the status of all jobs.
The return status is zero unless an invalid option is encountered
or an invalid
@var{jobspec}
is supplied.
If the @option{-x} option is supplied, @code{jobs} replaces any
@var{jobspec} found in @var{command} or @var{arguments} with the
@@ -9712,12 +9762,14 @@ passing it @var{argument}s, returning its exit status.
@item kill
@btindex kill
@example
kill [-s @var{sigspec}] [-n @var{signum}] [-@var{sigspec}] @var{jobspec} or @var{pid}
kill [-s @var{sigspec}] [-n @var{signum}] [-@var{sigspec}] @var{id} [@dots{}]
kill -l|-L [@var{exit_status}]
@end example
Send a signal specified by @var{sigspec} or @var{signum} to the process
named by job specification @var{jobspec} or process @sc{id} @var{pid}.
Send a signal specified by @var{sigspec} or @var{signum} to the processes
named by each @var{id}.
Each @var{id} may be a
job specification @var{jobspec} or process @sc{id} @var{pid}.
@var{sigspec} is either a case-insensitive signal name such as
@code{SIGINT} (with or without the @code{SIG} prefix)
or a signal number; @var{signum} is a signal number.
@@ -9725,11 +9777,15 @@ If @var{sigspec} and @var{signum} are not present, @code{kill}
sends @code{SIGTERM}.
The @option{-l} option lists the signal names.
If any arguments are supplied when @option{-l} is supplied, the names of the
signals corresponding to the arguments are listed, and the return status
is zero.
If any arguments are supplied when @option{-l} is supplied,
@code{kill} lists the names of the signals corresponding to the arguments,
and the return status is zero.
@var{exit_status} is a number specifying a signal number or the exit
status of a process terminated by a signal.
status of a process terminated by a signal;
if it is supplied, @code{kill} prints the name of the signal that caused
the process to terminate.
@code{kill} assumes that process exit statuses are greater than 128;
anything less than that is a signal number.
The @option{-L} option is equivalent to @option{-l}.
The return status is zero if at least one signal was successfully sent,
@@ -9743,8 +9799,9 @@ wait [-fn] [-p @var{varname}] [@var{id} @dots{}]
Wait until the child process specified by each @var{id} exits and
return the exit status of the last @var{id}.
Each @var{id} may be a @var{pid} or job specification @var{jobspec};
if a job spec is supplied, @code{wait} waits for all processes in the job.
Each @var{id} may be a process @sc{id} @var{pid}
or a job specification @var{jobspec};
if a jobspec is supplied, @code{wait} waits for all processes in the job.
If no options or @var{id}s are supplied,
@code{wait} waits for all running background jobs and
@@ -9753,20 +9810,21 @@ if its process id is the same as @var{$!},
and the return status is zero.
If the @option{-n} option is supplied, @code{wait} waits for any one of
the @var{id}s or, if no @var{id}s are supplied, any job
or process substitution,
the @var{id}s or,
if no @var{id}s are supplied, any job or process substitution,
to complete and returns its exit status.
If none of the supplied @var{id}s is a child of the shell,
or if no arguments are supplied and the shell has no unwaited-for children,
the exit status is 127.
If the @option{-p} option is supplied, the process or job identifier
of the job for which the exit status is returned is assigned to the
If the @option{-p} option is supplied, @code{wait} assigns
the process or job identifier of the job
for which the exit status is returned to the
variable @var{varname} named by the option argument.
The variable,
which cannot be readonly,
will be unset initially, before any assignment.
This is useful only when the @option{-n} option is supplied.
This is useful only when used with the @option{-n} option.
Supplying the @option{-f} option, when job control is enabled,
forces @code{wait} to wait for each @var{id} to terminate before
@@ -9788,21 +9846,27 @@ disown [-ar] [-h] [@var{id} @dots{}]
Without options, remove each @var{id} from the table of
active jobs.
Each @var{id} may be a @var{pid} or job specification @var{jobspec};
Each @var{id} may be a job specification @var{jobspec}
or a process @sc{id} @var{pid};
if @var{id} is a @var{pid},
@code{disown} uses the job containing @var{pid}.
If the @option{-h} option is supplied, the job is not removed from the table,
but is marked so that @code{SIGHUP} is not sent to the job if the shell
receives a @code{SIGHUP}.
If @var{id} is not present, and neither the @option{-a} nor the
@option{-r} option is supplied, @code{disown} removes the current job.
@code{disown} uses the job containing @var{pid} as @var{jobspec}.
If the @option{-h} option is supplied,
@code{disown} does not remove the jobs corresponding to each @code{id}
from the jobs table,
but rather marks them so the shell does not send
@code{SIGHUP}
to the job if the shell receives a
@code{SIGHUP}.
If no @var{id} is supplied, the @option{-a} option means to remove or
mark all jobs; the @option{-r} option without an @var{id}
argument restricts operation to running jobs.
argument removes or marks running jobs.
If no @var{id} is supplied,
and neither the @option{-a} nor the @option{-r} option is supplied,
@code{disown} removes or marks the current job.
The return value is 0 unless an @var{id}
does not specify a valid job.
The return value is 0 unless an @var{id} does not specify a valid job.
@item suspend
@btindex suspend
@@ -9824,8 +9888,8 @@ is not supplied.
@end table
When job control is not active, the @code{kill} and @code{wait}
builtins do not accept @var{jobspec} arguments. They must be
supplied process @sc{id}s.
builtins do not accept @var{jobspec} arguments.
They must be supplied process @sc{id}s.
@node Job Control Variables
@section Job Control Variables
@@ -9835,24 +9899,24 @@ supplied process @sc{id}s.
@item auto_resume
This variable controls how the shell interacts with the user and
job control.
If this variable exists then single-word simple
commands without redirections are treated as candidates for resumption
If this variable exists then simple commands
consisting of only a single word,
without redirections, are treated as candidates for resumption
of an existing job.
There is no ambiguity allowed; if there is more than one job
beginning with the string typed, then
the most recently accessed job is selected.
beginning with or containing the word, then
this selects the most recently accessed job.
The name of a stopped job, in this context, is the command line
used to start it.
used to start it, as displayed by @code{jobs}.
If this variable is set to the value @samp{exact},
the string supplied must match the name of a stopped job exactly;
the word must match the name of a stopped job exactly;
if set to @samp{substring},
the string supplied needs to match a substring of the name of a
stopped job.
the word needs to match a substring of the name of a stopped job.
The @samp{substring} value provides functionality
analogous to the @samp{%?} job @sc{id} (@pxref{Job Control Basics}).
If set to any other value, the supplied string must
be a prefix of a stopped job's name; this provides functionality
analogous to the @samp{%} job @sc{id}.
analogous to the @samp{%?string} job @sc{id} (@pxref{Job Control Basics}).
If set to any other value (e.g., @samp{prefix}),
the word must be a prefix of a stopped job's name;
this provides functionality analogous to the @samp{%string} job @sc{id}.
@end vtable
+52 -52
View File
@@ -89,55 +89,55 @@
@numchapentry{Job Control}{7}{Job Control}{123}
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{123}
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{124}
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{126}
@numchapentry{Command Line Editing}{8}{Command Line Editing}{127}
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{127}
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{127}
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{128}
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{128}
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{129}
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{129}
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{130}
@numsecentry{Readline Init File}{8.3}{Readline Init File}{130}
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{130}
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{140}
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{141}
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{144}
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{144}
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{145}
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{147}
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{148}
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{150}
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{150}
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{152}
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{152}
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{155}
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{155}
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{157}
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{161}
@numchapentry{Using History Interactively}{9}{Using History Interactively}{164}
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{164}
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{165}
@numsecentry{History Expansion}{9.3}{History Interaction}{167}
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{168}
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{169}
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{170}
@numchapentry{Installing Bash}{10}{Installing Bash}{171}
@numsecentry{Basic Installation}{10.1}{Basic Installation}{171}
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{172}
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{172}
@numsecentry{Installation Names}{10.4}{Installation Names}{173}
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{173}
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{173}
@numsecentry{Operation Controls}{10.7}{Operation Controls}{174}
@numsecentry{Optional Features}{10.8}{Optional Features}{174}
@appentry{Reporting Bugs}{A}{Reporting Bugs}{180}
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{181}
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{186}
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{188}
@appentry{Indexes}{D}{Indexes}{196}
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{196}
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{197}
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{198}
@appsecentry{Function Index}{D.4}{Function Index}{200}
@appsecentry{Concept Index}{D.5}{Concept Index}{202}
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{127}
@numchapentry{Command Line Editing}{8}{Command Line Editing}{128}
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{128}
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{128}
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{129}
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{129}
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{130}
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{130}
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{131}
@numsecentry{Readline Init File}{8.3}{Readline Init File}{131}
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{131}
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{141}
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{142}
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{145}
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{145}
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{146}
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{148}
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{149}
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{151}
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{151}
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{153}
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{153}
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{156}
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{156}
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{158}
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{162}
@numchapentry{Using History Interactively}{9}{Using History Interactively}{165}
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{165}
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{166}
@numsecentry{History Expansion}{9.3}{History Interaction}{168}
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{169}
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{170}
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{171}
@numchapentry{Installing Bash}{10}{Installing Bash}{172}
@numsecentry{Basic Installation}{10.1}{Basic Installation}{172}
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{173}
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{173}
@numsecentry{Installation Names}{10.4}{Installation Names}{174}
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{174}
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{174}
@numsecentry{Operation Controls}{10.7}{Operation Controls}{175}
@numsecentry{Optional Features}{10.8}{Optional Features}{175}
@appentry{Reporting Bugs}{A}{Reporting Bugs}{181}
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{182}
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{187}
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{189}
@appentry{Indexes}{D}{Indexes}{197}
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{197}
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{198}
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{199}
@appsecentry{Function Index}{D.4}{Function Index}{201}
@appsecentry{Concept Index}{D.5}{Concept Index}{203}
+47 -47
View File
@@ -130,50 +130,50 @@
\entry{TMOUT}{97}{\code {TMOUT}}
\entry{TMPDIR}{97}{\code {TMPDIR}}
\entry{UID}{97}{\code {UID}}
\entry{auto_resume}{126}{\code {auto_resume}}
\entry{active-region-start-color}{131}{\code {active-region-start-color}}
\entry{active-region-end-color}{131}{\code {active-region-end-color}}
\entry{bell-style}{131}{\code {bell-style}}
\entry{bind-tty-special-chars}{132}{\code {bind-tty-special-chars}}
\entry{blink-matching-paren}{132}{\code {blink-matching-paren}}
\entry{colored-completion-prefix}{132}{\code {colored-completion-prefix}}
\entry{colored-stats}{132}{\code {colored-stats}}
\entry{comment-begin}{132}{\code {comment-begin}}
\entry{completion-display-width}{132}{\code {completion-display-width}}
\entry{completion-ignore-case}{132}{\code {completion-ignore-case}}
\entry{completion-map-case}{132}{\code {completion-map-case}}
\entry{completion-prefix-display-length}{132}{\code {completion-prefix-display-length}}
\entry{completion-query-items}{133}{\code {completion-query-items}}
\entry{convert-meta}{133}{\code {convert-meta}}
\entry{disable-completion}{133}{\code {disable-completion}}
\entry{echo-control-characters}{133}{\code {echo-control-characters}}
\entry{editing-mode}{133}{\code {editing-mode}}
\entry{emacs-mode-string}{133}{\code {emacs-mode-string}}
\entry{enable-active-region The}{134}{\code {enable-active-region The}}
\entry{enable-bracketed-paste}{134}{\code {enable-bracketed-paste}}
\entry{enable-keypad}{134}{\code {enable-keypad}}
\entry{enable-meta-key}{134}{\code {enable-meta-key}}
\entry{expand-tilde}{134}{\code {expand-tilde}}
\entry{force-meta-prefix}{134}{\code {force-meta-prefix}}
\entry{history-preserve-point}{135}{\code {history-preserve-point}}
\entry{history-size}{135}{\code {history-size}}
\entry{horizontal-scroll-mode}{135}{\code {horizontal-scroll-mode}}
\entry{input-meta}{135}{\code {input-meta}}
\entry{meta-flag}{135}{\code {meta-flag}}
\entry{isearch-terminators}{135}{\code {isearch-terminators}}
\entry{keymap}{135}{\code {keymap}}
\entry{mark-modified-lines}{136}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{136}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{136}{\code {match-hidden-files}}
\entry{menu-complete-display-prefix}{136}{\code {menu-complete-display-prefix}}
\entry{output-meta}{136}{\code {output-meta}}
\entry{page-completions}{136}{\code {page-completions}}
\entry{revert-all-at-newline}{137}{\code {revert-all-at-newline}}
\entry{search-ignore-case}{137}{\code {search-ignore-case}}
\entry{show-all-if-ambiguous}{137}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{137}{\code {show-all-if-unmodified}}
\entry{show-mode-in-prompt}{137}{\code {show-mode-in-prompt}}
\entry{skip-completed-text}{137}{\code {skip-completed-text}}
\entry{vi-cmd-mode-string}{137}{\code {vi-cmd-mode-string}}
\entry{vi-ins-mode-string}{138}{\code {vi-ins-mode-string}}
\entry{visible-stats}{138}{\code {visible-stats}}
\entry{auto_resume}{127}{\code {auto_resume}}
\entry{active-region-start-color}{132}{\code {active-region-start-color}}
\entry{active-region-end-color}{132}{\code {active-region-end-color}}
\entry{bell-style}{132}{\code {bell-style}}
\entry{bind-tty-special-chars}{133}{\code {bind-tty-special-chars}}
\entry{blink-matching-paren}{133}{\code {blink-matching-paren}}
\entry{colored-completion-prefix}{133}{\code {colored-completion-prefix}}
\entry{colored-stats}{133}{\code {colored-stats}}
\entry{comment-begin}{133}{\code {comment-begin}}
\entry{completion-display-width}{133}{\code {completion-display-width}}
\entry{completion-ignore-case}{133}{\code {completion-ignore-case}}
\entry{completion-map-case}{133}{\code {completion-map-case}}
\entry{completion-prefix-display-length}{133}{\code {completion-prefix-display-length}}
\entry{completion-query-items}{134}{\code {completion-query-items}}
\entry{convert-meta}{134}{\code {convert-meta}}
\entry{disable-completion}{134}{\code {disable-completion}}
\entry{echo-control-characters}{134}{\code {echo-control-characters}}
\entry{editing-mode}{134}{\code {editing-mode}}
\entry{emacs-mode-string}{134}{\code {emacs-mode-string}}
\entry{enable-active-region The}{135}{\code {enable-active-region The}}
\entry{enable-bracketed-paste}{135}{\code {enable-bracketed-paste}}
\entry{enable-keypad}{135}{\code {enable-keypad}}
\entry{enable-meta-key}{135}{\code {enable-meta-key}}
\entry{expand-tilde}{135}{\code {expand-tilde}}
\entry{force-meta-prefix}{135}{\code {force-meta-prefix}}
\entry{history-preserve-point}{136}{\code {history-preserve-point}}
\entry{history-size}{136}{\code {history-size}}
\entry{horizontal-scroll-mode}{136}{\code {horizontal-scroll-mode}}
\entry{input-meta}{136}{\code {input-meta}}
\entry{meta-flag}{136}{\code {meta-flag}}
\entry{isearch-terminators}{136}{\code {isearch-terminators}}
\entry{keymap}{136}{\code {keymap}}
\entry{mark-modified-lines}{137}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{137}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{137}{\code {match-hidden-files}}
\entry{menu-complete-display-prefix}{137}{\code {menu-complete-display-prefix}}
\entry{output-meta}{137}{\code {output-meta}}
\entry{page-completions}{137}{\code {page-completions}}
\entry{revert-all-at-newline}{138}{\code {revert-all-at-newline}}
\entry{search-ignore-case}{138}{\code {search-ignore-case}}
\entry{show-all-if-ambiguous}{138}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{138}{\code {show-all-if-unmodified}}
\entry{show-mode-in-prompt}{138}{\code {show-mode-in-prompt}}
\entry{skip-completed-text}{138}{\code {skip-completed-text}}
\entry{vi-cmd-mode-string}{138}{\code {vi-cmd-mode-string}}
\entry{vi-ins-mode-string}{139}{\code {vi-ins-mode-string}}
\entry{visible-stats}{139}{\code {visible-stats}}
+47 -47
View File
@@ -26,9 +26,9 @@
\initial {0}
\entry{\code {0}}{24}
\initial {A}
\entry{\code {active-region-end-color}}{131}
\entry{\code {active-region-start-color}}{131}
\entry{\code {auto_resume}}{126}
\entry{\code {active-region-end-color}}{132}
\entry{\code {active-region-start-color}}{132}
\entry{\code {auto_resume}}{127}
\initial {B}
\entry{\code {BASH}}{85}
\entry{\code {BASH_ALIASES}}{85}
@@ -52,16 +52,16 @@
\entry{\code {BASH_XTRACEFD}}{88}
\entry{\code {BASHOPTS}}{85}
\entry{\code {BASHPID}}{85}
\entry{\code {bell-style}}{131}
\entry{\code {bind-tty-special-chars}}{132}
\entry{\code {blink-matching-paren}}{132}
\entry{\code {bell-style}}{132}
\entry{\code {bind-tty-special-chars}}{133}
\entry{\code {blink-matching-paren}}{133}
\initial {C}
\entry{\code {CDPATH}}{84}
\entry{\code {CHILD_MAX}}{88}
\entry{\code {colored-completion-prefix}}{132}
\entry{\code {colored-stats}}{132}
\entry{\code {colored-completion-prefix}}{133}
\entry{\code {colored-stats}}{133}
\entry{\code {COLUMNS}}{88}
\entry{\code {comment-begin}}{132}
\entry{\code {comment-begin}}{133}
\entry{\code {COMP_CWORD}}{88}
\entry{\code {COMP_KEY}}{88}
\entry{\code {COMP_LINE}}{88}
@@ -69,36 +69,36 @@
\entry{\code {COMP_TYPE}}{89}
\entry{\code {COMP_WORDBREAKS}}{89}
\entry{\code {COMP_WORDS}}{89}
\entry{\code {completion-display-width}}{132}
\entry{\code {completion-ignore-case}}{132}
\entry{\code {completion-map-case}}{132}
\entry{\code {completion-prefix-display-length}}{132}
\entry{\code {completion-query-items}}{133}
\entry{\code {completion-display-width}}{133}
\entry{\code {completion-ignore-case}}{133}
\entry{\code {completion-map-case}}{133}
\entry{\code {completion-prefix-display-length}}{133}
\entry{\code {completion-query-items}}{134}
\entry{\code {COMPREPLY}}{89}
\entry{\code {convert-meta}}{133}
\entry{\code {convert-meta}}{134}
\entry{\code {COPROC}}{89}
\initial {D}
\entry{\code {DIRSTACK}}{89}
\entry{\code {disable-completion}}{133}
\entry{\code {disable-completion}}{134}
\initial {E}
\entry{\code {echo-control-characters}}{133}
\entry{\code {editing-mode}}{133}
\entry{\code {emacs-mode-string}}{133}
\entry{\code {echo-control-characters}}{134}
\entry{\code {editing-mode}}{134}
\entry{\code {emacs-mode-string}}{134}
\entry{\code {EMACS}}{89}
\entry{\code {enable-active-region The}}{134}
\entry{\code {enable-bracketed-paste}}{134}
\entry{\code {enable-keypad}}{134}
\entry{\code {enable-meta-key}}{134}
\entry{\code {enable-active-region The}}{135}
\entry{\code {enable-bracketed-paste}}{135}
\entry{\code {enable-keypad}}{135}
\entry{\code {enable-meta-key}}{135}
\entry{\code {ENV}}{89}
\entry{\code {EPOCHREALTIME}}{90}
\entry{\code {EPOCHSECONDS}}{90}
\entry{\code {EUID}}{90}
\entry{\code {EXECIGNORE}}{90}
\entry{\code {expand-tilde}}{134}
\entry{\code {expand-tilde}}{135}
\initial {F}
\entry{\code {FCEDIT}}{90}
\entry{\code {FIGNORE}}{90}
\entry{\code {force-meta-prefix}}{134}
\entry{\code {force-meta-prefix}}{135}
\entry{\code {FUNCNAME}}{90}
\entry{\code {FUNCNEST}}{90}
\initial {G}
@@ -112,24 +112,24 @@
\entry{\code {HISTFILE}}{92}
\entry{\code {HISTFILESIZE}}{92}
\entry{\code {HISTIGNORE}}{92}
\entry{\code {history-preserve-point}}{135}
\entry{\code {history-size}}{135}
\entry{\code {history-preserve-point}}{136}
\entry{\code {history-size}}{136}
\entry{\code {HISTSIZE}}{92}
\entry{\code {HISTTIMEFORMAT}}{93}
\entry{\code {HOME}}{84}
\entry{\code {horizontal-scroll-mode}}{135}
\entry{\code {horizontal-scroll-mode}}{136}
\entry{\code {HOSTFILE}}{93}
\entry{\code {HOSTNAME}}{93}
\entry{\code {HOSTTYPE}}{93}
\initial {I}
\entry{\code {IFS}}{84}
\entry{\code {IGNOREEOF}}{93}
\entry{\code {input-meta}}{135}
\entry{\code {input-meta}}{136}
\entry{\code {INPUTRC}}{93}
\entry{\code {INSIDE_EMACS}}{93}
\entry{\code {isearch-terminators}}{135}
\entry{\code {isearch-terminators}}{136}
\initial {K}
\entry{\code {keymap}}{135}
\entry{\code {keymap}}{136}
\initial {L}
\entry{\code {LANG}}{8, 93}
\entry{\code {LC_ALL}}{93}
@@ -146,20 +146,20 @@
\entry{\code {MAILCHECK}}{94}
\entry{\code {MAILPATH}}{84}
\entry{\code {MAPFILE}}{94}
\entry{\code {mark-modified-lines}}{136}
\entry{\code {mark-symlinked-directories}}{136}
\entry{\code {match-hidden-files}}{136}
\entry{\code {menu-complete-display-prefix}}{136}
\entry{\code {meta-flag}}{135}
\entry{\code {mark-modified-lines}}{137}
\entry{\code {mark-symlinked-directories}}{137}
\entry{\code {match-hidden-files}}{137}
\entry{\code {menu-complete-display-prefix}}{137}
\entry{\code {meta-flag}}{136}
\initial {O}
\entry{\code {OLDPWD}}{94}
\entry{\code {OPTARG}}{84}
\entry{\code {OPTERR}}{94}
\entry{\code {OPTIND}}{84}
\entry{\code {OSTYPE}}{94}
\entry{\code {output-meta}}{136}
\entry{\code {output-meta}}{137}
\initial {P}
\entry{\code {page-completions}}{136}
\entry{\code {page-completions}}{137}
\entry{\code {PATH}}{84}
\entry{\code {PIPESTATUS}}{94}
\entry{\code {POSIXLY_CORRECT}}{94}
@@ -179,17 +179,17 @@
\entry{\code {READLINE_MARK}}{95}
\entry{\code {READLINE_POINT}}{95}
\entry{\code {REPLY}}{95}
\entry{\code {revert-all-at-newline}}{137}
\entry{\code {revert-all-at-newline}}{138}
\initial {S}
\entry{\code {search-ignore-case}}{137}
\entry{\code {search-ignore-case}}{138}
\entry{\code {SECONDS}}{95}
\entry{\code {SHELL}}{96}
\entry{\code {SHELLOPTS}}{96}
\entry{\code {SHLVL}}{96}
\entry{\code {show-all-if-ambiguous}}{137}
\entry{\code {show-all-if-unmodified}}{137}
\entry{\code {show-mode-in-prompt}}{137}
\entry{\code {skip-completed-text}}{137}
\entry{\code {show-all-if-ambiguous}}{138}
\entry{\code {show-all-if-unmodified}}{138}
\entry{\code {show-mode-in-prompt}}{138}
\entry{\code {skip-completed-text}}{138}
\entry{\code {SRANDOM}}{96}
\initial {T}
\entry{\code {TEXTDOMAIN}}{8}
@@ -200,6 +200,6 @@
\initial {U}
\entry{\code {UID}}{97}
\initial {V}
\entry{\code {vi-cmd-mode-string}}{137}
\entry{\code {vi-ins-mode-string}}{138}
\entry{\code {visible-stats}}{138}
\entry{\code {vi-cmd-mode-string}}{138}
\entry{\code {vi-ins-mode-string}}{139}
\entry{\code {visible-stats}}{139}
+634 -628
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2,10 +2,10 @@
Copyright (C) 1988-2024 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Thu Oct 10 10:31:59 EDT 2024
@set LASTCHANGE Mon Oct 14 11:41:52 EDT 2024
@set EDITION 5.3
@set VERSION 5.3
@set UPDATED 10 October 2024
@set UPDATED 14 October 2024
@set UPDATED-MONTH October 2024
+24 -23
View File
@@ -3455,6 +3455,7 @@ wait_for_any_job (int flags, struct procstat *ps)
pid_t pid;
int i, r;
sigset_t set, oset;
struct pidstat *t;
PROCESS *p, *child;
/* Allow funsubs to run this, but don't remove jobs from the jobs table. */
@@ -3479,11 +3480,7 @@ return_job:
}
if (jobs_list_frozen == 0) /* must be running a funsub to get here */
{
#if 1
notify_of_job_status (i); /* XXX */
#else
maybe_print_job_notifications (i);
#endif
/* kre@munnari.oz.au 01/30/2024 */
delete_job (i, posixly_correct ? DEL_NOBGPID : 0);
@@ -3535,6 +3532,23 @@ return_procsub:
}
#endif
/* There aren't any dead jobs in the jobs table, but let's see if there's
one in bgpids. We can do this in posix mode because we'll remove any
one we find from the table, preserving existing semantics. */
if (posixly_correct && (t = bgp_findone ()))
{
pid = t->pid;
r = t->status;
if (ps)
{
ps->pid = pid;
ps->status = r;
}
bgp_delete (pid);
UNBLOCK_CHILD (oset);
return r;
}
UNBLOCK_CHILD (oset);
/* At this point, we have no dead jobs in the jobs table. Wait until we
@@ -3577,26 +3591,8 @@ return_procsub:
if (i == js.j_jobslots && p == NULL)
{
/* Ok, the job table is empty. If we're in posix mode, we can look
in the bgpids table because we will remove the pid we find and
this won't change existing semantics. Otherwise, we return
failure as before. */
struct pidstat *t;
r = -1;
if (posixly_correct && (t = bgp_findone ()))
{
pid = t->pid;
r = t->status;
if (ps)
{
ps->pid = pid;
ps->status = r;
}
bgp_delete (pid);
}
UNBLOCK_CHILD (oset);
return r;
return -1;
}
UNBLOCK_CHILD (oset);
@@ -3943,7 +3939,12 @@ start_job (int job, int foreground)
}
else
{
#if 0
/* XXX TAG:bash-5.4 */
set_current_job (job);
#else
reset_current ();
#endif
UNBLOCK_CHILD (oset);
return (0);
}
+2 -1
View File
@@ -205,7 +205,7 @@ Key bindings may contain the following symbolic character names:
.IR NEWLINE ,
.IR RET ,
.IR RETURN ,
.IR RUBOUT ,
.IR RUBOUT (a destructive backspace),
.IR SPACE ,
.IR SPC ,
and
@@ -1170,6 +1170,7 @@ Delete the character at point.
If this function is bound to the
same character as the tty \fBEOF\fP character, as \fBC\-d\fP
commonly is, see above for the effects.
This may also be bound to the Delete key on some keyboards.
.TP
.B backward\-delete\-char (Rubout)
Delete the character behind the cursor.
+2 -1
View File
@@ -971,7 +971,7 @@ This key binding syntax recognizes a number of symbolic character names:
@var{NEWLINE},
@var{RET},
@var{RETURN},
@var{RUBOUT},
@var{RUBOUT} (a destructive backspace),
@var{SPACE},
@var{SPC},
and
@@ -1528,6 +1528,7 @@ Delete the character at point.
If this function is bound to the
same character as the tty @sc{eof} character, as @kbd{C-d}
commonly is, see above for the effects.
This may also be bound to the Delete key on some keyboards.
@item backward-delete-char (Rubout)
Delete the character behind the cursor.
+2 -2
View File
@@ -5,7 +5,7 @@ Copyright (C) 1988-2024 Free Software Foundation, Inc.
@set EDITION 8.3
@set VERSION 8.3
@set UPDATED 10 October 2024
@set UPDATED 14 October 2024
@set UPDATED-MONTH October 2024
@set LASTCHANGE Thu Oct 10 16:33:55 EDT 2024
@set LASTCHANGE Mon Oct 14 11:42:19 EDT 2024