mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-30 00:49:57 +02:00
commit bash-20151204 snapshot
This commit is contained in:
@@ -10026,3 +10026,95 @@ lib/readline/display.c
|
||||
vs. physical screen position). These fix bug with prompts with
|
||||
multibyte characters and invisible characters that are longer than
|
||||
the screen width reported by Ryo Furue <ryofurue@gmail.com>
|
||||
|
||||
12/1
|
||||
----
|
||||
parse.y,make_cmd.c
|
||||
- here_doc_first_line: new variable, set to non-zero to indicate the
|
||||
first line of possibly multiple here documents associated with the
|
||||
current command. Set in parse.y:gather_here_documents() before
|
||||
reading any here documents, set to 0 after reading the first line
|
||||
of any here document in make_cmd.c:make_here_document().
|
||||
|
||||
parse.y
|
||||
- history_delimiting_chars: if parser_state indicates we are reading
|
||||
a here document, don't use current_command_line_count to see whether
|
||||
or not we're on the first line of a here document -- it can be fooled
|
||||
by multi-line commands (or even backslash-escaped newlines). Use
|
||||
here_doc_first_line to check that directly. Fixes bug reported by
|
||||
Geoffrey Allott <geoffrey@allott.email>
|
||||
|
||||
shell.h,parse.y
|
||||
- save and restore here_doc_first_line as part of the shell's parser
|
||||
state
|
||||
|
||||
lib/sh/tmpfile.c
|
||||
- use ANSI-C rand() interface if random() not available. Fixes problem
|
||||
with linking on (ancient) Solaris 2.4 reported by Klaus Ziegler
|
||||
<klausz@haus-gisela.de>
|
||||
|
||||
12/2
|
||||
----
|
||||
aclocal.m4
|
||||
- RL_LIB_READLINE_VERSION: if cross-compiling, assume current version
|
||||
of readline if cross-compiling bash while using an external readline
|
||||
library. Fix from Barry Davis <barry_davis@stormagic.com>
|
||||
|
||||
execute_cmd.c
|
||||
- execute_builtin: save and restore value of builtin_ignoring_errexit
|
||||
instead of assuming we can set it back to 0 -- the ignore-errexit
|
||||
cases might be nested
|
||||
- execute_builtin: after a builtin executes and eval_unwind is set,
|
||||
set exit_immediately_on_error to 0 if builtin_ignoring_errexit is
|
||||
set, and back to the value of errexit otherwise, just like the
|
||||
code that sets -e does. Fixes short-circuiting bug reported by
|
||||
Marcin Swigon <swigon.mar@gmail.com>
|
||||
|
||||
12/5
|
||||
----
|
||||
builtins/setattr.def
|
||||
- set_or_show_attributes: instead of using a fixed string for the
|
||||
options argument to `declare', which results in export adding the
|
||||
readonly attribute, build the option string dynamically like in
|
||||
subst.c:shell_expand_word_list()
|
||||
- set_or_show_attributes: don't add the -r option to declare if the
|
||||
attribute passed as an argument doesn't include att_readonly; add
|
||||
-x if the attribute includes att_exported
|
||||
- set_or_show_attributes: add the -g option to declare so readonly
|
||||
and export in functions that go through this code path don't create
|
||||
local variables. Part of fix for bug reported by ziyunfei
|
||||
<446240525@qq.com>
|
||||
|
||||
execute_cmd.c
|
||||
- make_internal_declare: if we have an assignment builtin that isn't
|
||||
supposed to create local variables (export/readonly), make sure to
|
||||
add the W_ASSNGLOBAL flag to each assignment statement word.
|
||||
Part of fix for bug reported by ziyunfei <446240525@qq.com> where
|
||||
readonly can create local variables when invoked with a compound
|
||||
array assignment as an argument within a shell function
|
||||
|
||||
subst.c
|
||||
- make_internal_declare: added third argument: command name. Not used
|
||||
in any useful way yet
|
||||
- do_compound_assignment: handle attempted assignments to readonly
|
||||
variables and print error messages, like bind_variable does and the
|
||||
callers expect. This means that assignments to readonly array
|
||||
variables can't go through a code path that allows them to fail
|
||||
silently
|
||||
|
||||
doc/Makefile.in
|
||||
- uninstall: run install-info --delete after removing the installed
|
||||
info file to update the directory file
|
||||
|
||||
execute_cmd.c
|
||||
- execute_disk_command: since we still (and have always) perform
|
||||
redirections in child processes, we need to mark that state so
|
||||
we know that we're in a child process. subshell_performing_redirections
|
||||
is the new variable; non-zero when executing do_redirections()
|
||||
|
||||
subst.c
|
||||
- process_substitute: if we are executing process substitution in a
|
||||
redirection expansion context (expanding_redir == 1), the child
|
||||
process should not have access to any temporary environment the
|
||||
parent has. Call flush_tempenv() in the child process to get rid
|
||||
of it. Fix for bug reported by Clint Hepner <clint.hepner@gmail.com>
|
||||
|
||||
@@ -856,6 +856,10 @@ tests/assoc5.sub f
|
||||
tests/assoc6.sub f
|
||||
tests/assoc7.sub f
|
||||
tests/assoc8.sub f
|
||||
tests/attr.tests f
|
||||
tests/attr.right f
|
||||
tests/attr1.sub f
|
||||
tests/attr2.sub f
|
||||
tests/braces.tests f
|
||||
tests/braces.right f
|
||||
tests/builtins.tests f
|
||||
@@ -1160,6 +1164,7 @@ tests/run-arith f
|
||||
tests/run-array f
|
||||
tests/run-array2 f
|
||||
tests/run-assoc f
|
||||
tests/run-attr f
|
||||
tests/run-braces f
|
||||
tests/run-builtins f
|
||||
tests/run-case f
|
||||
|
||||
+4
-1
@@ -567,7 +567,7 @@ LOADABLES_DIR = ${top_builddir}/examples/loadables
|
||||
# Keep GNU Make from exporting the entire environment for small machines.
|
||||
.NOEXPORT:
|
||||
|
||||
.made: $(Program) bashbug
|
||||
.made: $(Program) bashbug $(SDIR)/man2html$(EXEEXT)
|
||||
@echo "$(Program) last made for a $(Machine) running $(OS)" >.made
|
||||
|
||||
$(Program): .build $(OBJECTS) $(BUILTINS_DEP) $(LIBDEP)
|
||||
@@ -719,6 +719,9 @@ ${DEFDIR}/bashgetopt.o: $(BUILTIN_SRCDIR)/bashgetopt.c
|
||||
${DEFDIR}/builtext.h: $(BUILTIN_DEFS)
|
||||
@(cd $(DEFDIR) && $(MAKE) $(MFLAGS) builtext.h ) || exit 1
|
||||
|
||||
$(SDIR)/man2html$(EXEEXT): ${SUPPORT_SRC}/man2html.c
|
||||
@(cd $(SDIR) && $(MAKE) $(MFLAGS) all ) || exit 1
|
||||
|
||||
# For the justification of the following Makefile rules, see node
|
||||
# `Automatic Remaking' in GNU Autoconf documentation.
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1856,7 +1856,7 @@ main()
|
||||
],
|
||||
ac_cv_rl_version=`cat conftest.rlv`,
|
||||
ac_cv_rl_version='0.0',
|
||||
ac_cv_rl_version='4.2')])
|
||||
ac_cv_rl_version='6.3')])
|
||||
|
||||
CFLAGS="$_save_CFLAGS"
|
||||
LDFLAGS="$_save_LDFLAGS"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* bashhist.c -- bash interface to the GNU history library. */
|
||||
|
||||
/* Copyright (C) 1993-2012 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993-2015 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
#define SPECIAL_BUILTIN 0x08 /* This is a Posix `special' builtin. */
|
||||
#define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */
|
||||
#define POSIX_BUILTIN 0x20 /* This builtins is special in the Posix command search order. */
|
||||
#define LOCALVAR_BUILTIN 0x40 /* This builtin creates local variables */
|
||||
|
||||
#define BASE_INDENT 4
|
||||
|
||||
|
||||
+19
-2
@@ -71,7 +71,8 @@ extern char *strcpy ();
|
||||
/* Flag values that builtins can have. */
|
||||
#define BUILTIN_FLAG_SPECIAL 0x01
|
||||
#define BUILTIN_FLAG_ASSIGNMENT 0x02
|
||||
#define BUILTIN_FLAG_POSIX_BUILTIN 0x04
|
||||
#define BUILTIN_FLAG_LOCALVAR 0x04
|
||||
#define BUILTIN_FLAG_POSIX_BUILTIN 0x08
|
||||
|
||||
#define BASE_INDENT 4
|
||||
|
||||
@@ -159,6 +160,11 @@ char *assignment_builtins[] =
|
||||
(char *)NULL
|
||||
};
|
||||
|
||||
char *localvar_builtins[] =
|
||||
{
|
||||
"declare", "local", "typeset", (char *)NULL
|
||||
};
|
||||
|
||||
/* The builtin commands that are special to the POSIX search order. */
|
||||
char *posix_builtins[] =
|
||||
{
|
||||
@@ -170,6 +176,7 @@ char *posix_builtins[] =
|
||||
/* Forward declarations. */
|
||||
static int is_special_builtin ();
|
||||
static int is_assignment_builtin ();
|
||||
static int is_localvar_builtin ();
|
||||
static int is_posix_builtin ();
|
||||
|
||||
#if !defined (HAVE_RENAME)
|
||||
@@ -820,6 +827,8 @@ builtin_handler (self, defs, arg)
|
||||
new->flags |= BUILTIN_FLAG_SPECIAL;
|
||||
if (is_assignment_builtin (name))
|
||||
new->flags |= BUILTIN_FLAG_ASSIGNMENT;
|
||||
if (is_localvar_builtin (name))
|
||||
new->flags |= BUILTIN_FLAG_LOCALVAR;
|
||||
if (is_posix_builtin (name))
|
||||
new->flags |= BUILTIN_FLAG_POSIX_BUILTIN;
|
||||
|
||||
@@ -1241,10 +1250,11 @@ write_builtins (defs, structfile, externfile)
|
||||
else
|
||||
fprintf (structfile, "(sh_builtin_func_t *)0x0, ");
|
||||
|
||||
fprintf (structfile, "%s%s%s%s, %s_doc,\n",
|
||||
fprintf (structfile, "%s%s%s%s%s, %s_doc,\n",
|
||||
"BUILTIN_ENABLED | STATIC_BUILTIN",
|
||||
(builtin->flags & BUILTIN_FLAG_SPECIAL) ? " | SPECIAL_BUILTIN" : "",
|
||||
(builtin->flags & BUILTIN_FLAG_ASSIGNMENT) ? " | ASSIGNMENT_BUILTIN" : "",
|
||||
(builtin->flags & BUILTIN_FLAG_LOCALVAR) ? " | LOCALVAR_BUILTIN" : "",
|
||||
(builtin->flags & BUILTIN_FLAG_POSIX_BUILTIN) ? " | POSIX_BUILTIN" : "",
|
||||
document_name (builtin));
|
||||
|
||||
@@ -1609,6 +1619,13 @@ is_assignment_builtin (name)
|
||||
return (_find_in_table (name, assignment_builtins));
|
||||
}
|
||||
|
||||
static int
|
||||
is_localvar_builtin (name)
|
||||
char *name;
|
||||
{
|
||||
return (_find_in_table (name, localvar_builtins));
|
||||
}
|
||||
|
||||
static int
|
||||
is_posix_builtin (name)
|
||||
char *name;
|
||||
|
||||
+20
-2
@@ -1,7 +1,7 @@
|
||||
This file is setattr.def, from which is created setattr.c.
|
||||
It implements the builtins "export" and "readonly", in Bash.
|
||||
|
||||
Copyright (C) 1987-2014 Free Software Foundation, Inc.
|
||||
Copyright (C) 1987-2015 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
|
||||
@@ -134,6 +134,8 @@ set_or_show_attributes (list, attribute, nodefs)
|
||||
#if defined (ARRAY_VARS)
|
||||
WORD_LIST *nlist, *tlist;
|
||||
WORD_DESC *w;
|
||||
char optw[8];
|
||||
int opti;
|
||||
#endif
|
||||
|
||||
functions_only = arrays_only = assoc_only = 0;
|
||||
@@ -238,8 +240,24 @@ set_or_show_attributes (list, attribute, nodefs)
|
||||
{
|
||||
tlist = list->next;
|
||||
list->next = (WORD_LIST *)NULL;
|
||||
w = arrays_only ? make_word ("-ra") : make_word ("-rA");
|
||||
/* Add -g to avoid readonly/export creating local variables:
|
||||
only local/declare/typeset create local variables */
|
||||
opti = 0;
|
||||
optw[opti++] = '-';
|
||||
optw[opti++] = 'g';
|
||||
if (attribute & att_readonly)
|
||||
optw[opti++] = 'r';
|
||||
if (attribute & att_exported)
|
||||
optw[opti++] = 'x';
|
||||
if (arrays_only)
|
||||
optw[opti++] = 'a';
|
||||
else
|
||||
optw[opti++] = 'A';
|
||||
optw[opti] = '\0';
|
||||
|
||||
w = make_word (optw);
|
||||
nlist = make_word_list (w, list);
|
||||
|
||||
opt = declare_builtin (nlist);
|
||||
if (opt != EXECUTION_SUCCESS)
|
||||
assign_error++;
|
||||
|
||||
@@ -5299,7 +5299,7 @@ if ${ac_cv_rl_version+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if test "$cross_compiling" = yes; then :
|
||||
ac_cv_rl_version='4.2'
|
||||
ac_cv_rl_version='6.3'
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
+17
-7
@@ -1,6 +1,6 @@
|
||||
# This Makefile is for the Bash/documentation directory -*- text -*-.
|
||||
#
|
||||
# Copyright (C) 2003-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003-2015 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -154,13 +154,13 @@ BASHREF_FILES = $(srcdir)/bashref.texi $(srcdir)/fdl.texi $(srcdir)/version.texi
|
||||
# $(RM) $@
|
||||
# -${TEXI2PDF} $<
|
||||
|
||||
all: ps info dvi text html
|
||||
all: ps info dvi text html $(MAN2HTML)
|
||||
nodvi: ps info text html
|
||||
everything: all pdf
|
||||
|
||||
PSFILES = bash.ps bashbug.ps article.ps builtins.ps rbash.ps
|
||||
DVIFILES = bashref.dvi bashref.ps
|
||||
INFOFILES = bashref.info
|
||||
INFOFILES = bashref.info bash.info
|
||||
MAN0FILES = bash.0 bashbug.0 builtins.0 rbash.0
|
||||
HTMLFILES = bashref.html bash.html
|
||||
PDFFILES = bash.pdf bashref.pdf article.pdf rose94.pdf
|
||||
@@ -184,16 +184,16 @@ bashref.pdf: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
|
||||
|
||||
|
||||
# can also use:
|
||||
# $(MAKEINFO) --html --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi
|
||||
# $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/bashref.texi
|
||||
bashref.html: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
|
||||
$(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/bashref.texi
|
||||
$(MAKEINFO) --html --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi
|
||||
|
||||
bash.info: bashref.info
|
||||
${SHELL} ${INFOPOST} < $(srcdir)/bashref.info > $@ ; \
|
||||
|
||||
bash.txt: bash.1
|
||||
bash.ps: bash.1
|
||||
bash.html: bash.1 $(MAN2HTML)
|
||||
bash.html: bash.1
|
||||
bashbug.ps: bashbug.1
|
||||
builtins.ps: builtins.1 bash.1
|
||||
rbash.ps: rbash.1 bash.1
|
||||
@@ -247,7 +247,7 @@ installdirs:
|
||||
$(SHELL) $(SUPPORT_SRCDIR)/mkinstalldirs $(DESTDIR)$(htmldir) ; \
|
||||
fi
|
||||
|
||||
install: info installdirs bash.info
|
||||
install: info installdirs
|
||||
-$(INSTALL_DATA) $(srcdir)/bash.1 $(DESTDIR)$(man1dir)/bash${man1ext}
|
||||
-$(INSTALL_DATA) $(srcdir)/bashbug.1 $(DESTDIR)$(man1dir)/bashbug${man1ext}
|
||||
-$(INSTALL_DATA) $(OTHER_DOCS) $(DESTDIR)$(docdir)
|
||||
@@ -274,10 +274,20 @@ install_builtins: installdirs
|
||||
|
||||
install_everything: install install_builtins
|
||||
|
||||
install-html: html
|
||||
-if test -n "${htmldir}" ; then \
|
||||
$(INSTALL_DATA) $(srcdir)/bash.html $(DESTDIR)$(htmldir) ; \
|
||||
$(INSTALL_DATA) $(srcdir)/bashref.html $(DESTDIR)$(htmldir) ; \
|
||||
fi
|
||||
|
||||
uninstall:
|
||||
-$(RM) $(DESTDIR)$(man1dir)/bash${man1ext} $(DESTDIR)$(man1dir)/bashbug${man1ext}
|
||||
-$(RM) $(DESTDIR)$(man1dir)/bash_builtins${man1ext}
|
||||
$(RM) $(DESTDIR)$(infodir)/bash.info
|
||||
# run install-info if it is present to update the info directory
|
||||
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
|
||||
install-info --delete --dir-file=$(DESTDIR)$(infodir)/dir $(DESTDIR)$(infodir)/bash.info; \
|
||||
else true; fi
|
||||
-( cd $(DESTDIR)$(docdir) && $(RM) $(OTHER_INSTALLED_DOCS) )
|
||||
-if test -n "$(htmldir)" ; then \
|
||||
$(RM) $(DESTDIR)$(htmldir)/bash.html ; \
|
||||
|
||||
+477
-454
File diff suppressed because it is too large
Load Diff
+72
-22
@@ -3,7 +3,7 @@
|
||||
</HEAD>
|
||||
<BODY><TABLE WIDTH=100%>
|
||||
<TR>
|
||||
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2015 October 11<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2015 November 16<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
</TR>
|
||||
</TABLE>
|
||||
<BR><A HREF="#index">Index</A>
|
||||
@@ -1354,6 +1354,8 @@ of all characters within the quotes, with the exception of
|
||||
and, when history expansion is enabled,
|
||||
<B>!</B>.
|
||||
|
||||
When the shell is in <I>posix mode</I>, the <B>!</B> has no special meaning
|
||||
within double quotes, even when history expansion is enabled.
|
||||
The characters
|
||||
<B>$</B>
|
||||
|
||||
@@ -1870,8 +1872,14 @@ that do not require <B>bash</B> to be re-initialized.
|
||||
<DD>
|
||||
An associative array variable whose members correspond to the internal
|
||||
list of aliases as maintained by the <B>alias</B> builtin.
|
||||
Elements added to this array appear in the alias list; unsetting array
|
||||
elements cause aliases to be removed from the alias list.
|
||||
Elements added to this array appear in the alias list; however,
|
||||
unsetting array elements currently does not cause aliases to be removed
|
||||
from the alias list.
|
||||
If
|
||||
<B>BASH_ALIASES</B>
|
||||
|
||||
is unset, it loses its special properties, even if it is
|
||||
subsequently reset.
|
||||
<DT><B>BASH_ARGC</B>
|
||||
|
||||
<DD>
|
||||
@@ -1923,8 +1931,14 @@ builtin below)
|
||||
<DD>
|
||||
An associative array variable whose members correspond to the internal
|
||||
hash table of commands as maintained by the <B>hash</B> builtin.
|
||||
Elements added to this array appear in the hash table; unsetting array
|
||||
elements cause commands to be removed from the hash table.
|
||||
Elements added to this array appear in the hash table; however,
|
||||
unsetting array elements currently does not cause command names to be removed
|
||||
from the hash table.
|
||||
If
|
||||
<B>BASH_CMDS</B>
|
||||
|
||||
is unset, it loses its special properties, even if it is
|
||||
subsequently reset.
|
||||
<DT><B>BASH_COMMAND</B>
|
||||
|
||||
<DD>
|
||||
@@ -2551,7 +2565,7 @@ used when the shell is invoked in POSIX mode.
|
||||
<DT><B>EXECIGNORE</B>
|
||||
|
||||
<DD>
|
||||
A colon-separated list of extended glob patterns (see <B>Pattern Matching</B>)
|
||||
A colon-separated list of shell patterns (see <B>Pattern Matching</B>)
|
||||
defining the list of filenames to be ignored by command search.
|
||||
Files whose full pathnames match one of these patterns are not considered
|
||||
executable files for the purposes of completion and command execution.
|
||||
@@ -2559,6 +2573,8 @@ This does not affect the behavior of the <B>[</B>, <B>test</B>, and <B>[[</B>
|
||||
commands.
|
||||
Use this variable to ignore shared library files that have the executable
|
||||
bit set, but are not executable files.
|
||||
The pattern matching honors the setting of the <B>extglob</B> shell
|
||||
option.
|
||||
<DT><B>FCEDIT</B>
|
||||
|
||||
<DD>
|
||||
@@ -2683,6 +2699,8 @@ not tested, and are added to the history regardless of the value of
|
||||
<FONT SIZE=-1><B>HISTIGNORE</B>.
|
||||
|
||||
</FONT>
|
||||
The pattern matching honors the setting of the <B>extglob</B> shell
|
||||
option.
|
||||
<DT><B>HISTSIZE</B>
|
||||
|
||||
<DD>
|
||||
@@ -2960,6 +2978,15 @@ trailing directory components to retain when expanding the <B>\w</B> and
|
||||
|
||||
</FONT>
|
||||
below). Characters removed are replaced with an ellipsis.
|
||||
<DT><B>PS0</B>
|
||||
|
||||
<DD>
|
||||
The value of this parameter is expanded (see
|
||||
<FONT SIZE=-1><B>PROMPTING</B>
|
||||
|
||||
</FONT>
|
||||
below) and displayed by interactive shells after reading a command
|
||||
and before the command is executed.
|
||||
<DT><B>PS1</B>
|
||||
|
||||
<DD>
|
||||
@@ -4049,8 +4076,8 @@ or
|
||||
|
||||
<B>Bash</B>
|
||||
|
||||
performs the expansion by executing <I>command</I> and
|
||||
replacing the command substitution with the standard output of the
|
||||
performs the expansion by executing <I>command</I> in a subshell environment
|
||||
and replacing the command substitution with the standard output of the
|
||||
command, with any trailing newlines deleted.
|
||||
Embedded newlines are not deleted, but they may be removed during
|
||||
word splitting.
|
||||
@@ -4121,19 +4148,23 @@ prints a message indicating failure and no substitution occurs.
|
||||
|
||||
<P>
|
||||
|
||||
<I>Process substitution</I> is supported on systems that support named
|
||||
pipes (<I>FIFOs</I>) or the <B>/dev/fd</B> method of naming open files.
|
||||
<I>Process substitution</I> allows a process's input or output to be
|
||||
referred to using a filename.
|
||||
It takes the form of
|
||||
<B><(</B><I>list</I><B>)</B>
|
||||
or
|
||||
<B>>(</B><I>list</I><B>)</B>.
|
||||
The process <I>list</I> is run with its input or output connected to a
|
||||
<I>FIFO</I> or some file in <B>/dev/fd</B>. The name of this file is
|
||||
The process <I>list</I> is run asynchronously, and its input or output
|
||||
appears as a filename.
|
||||
This filename is
|
||||
passed as an argument to the current command as the result of the
|
||||
expansion. If the <B>>(</B><I>list</I><B>)</B> form is used, writing to
|
||||
expansion.
|
||||
If the <B>>(</B><I>list</I><B>)</B> form is used, writing to
|
||||
the file will provide input for <I>list</I>. If the
|
||||
<B><(</B><I>list</I><B>)</B> form is used, the file passed as an
|
||||
argument should be read to obtain the output of <I>list</I>.
|
||||
Process substitution is supported on systems that support named
|
||||
pipes (<I>FIFOs</I>) or the <B>/dev/fd</B> method of naming open files.
|
||||
<P>
|
||||
|
||||
When available, process substitution is performed
|
||||
@@ -4191,10 +4222,12 @@ If
|
||||
</FONT>
|
||||
has a value other than the default, then sequences of
|
||||
the whitespace characters
|
||||
<B>space</B>
|
||||
<B>space</B>,
|
||||
|
||||
<B>tab</B>,
|
||||
|
||||
and
|
||||
<B>tab</B>
|
||||
<B>newline</B>
|
||||
|
||||
are ignored at the beginning and end of the
|
||||
word, as long as the whitespace character is in the
|
||||
@@ -4387,6 +4420,8 @@ option is disabled when
|
||||
|
||||
</FONT>
|
||||
is unset.
|
||||
The pattern matching honors the setting of the <B>extglob</B> shell
|
||||
option.
|
||||
<P>
|
||||
|
||||
<B>Pattern Matching</B>
|
||||
@@ -4980,12 +5015,12 @@ The <I>word</I> undergoes
|
||||
brace expansion, tilde expansion, parameter and variable expansion,
|
||||
command substitution, arithmetic expansion, and quote removal.
|
||||
Pathname expansion and word splitting are not performed.
|
||||
The result is supplied as a single string to the command on its
|
||||
The result is supplied as a single string, with a newline appended,
|
||||
to the command on its
|
||||
standard input (or file descriptor <I>n</I> if <I>n</I> is specified).
|
||||
<A NAME="lbBQ"> </A>
|
||||
<H4>Duplicating File Descriptors</H4>
|
||||
|
||||
<P>
|
||||
<P>
|
||||
|
||||
The redirection operator
|
||||
@@ -6381,6 +6416,12 @@ when it is ready to read a command, and the secondary prompt
|
||||
when it needs more input to complete a command.
|
||||
<B>Bash</B>
|
||||
|
||||
displays
|
||||
<B>PS0</B>
|
||||
|
||||
after it reads a command but before executing it.
|
||||
<B>Bash</B>
|
||||
|
||||
allows these prompt strings to be customized by inserting a number of
|
||||
backslash-escaped special characters that are decoded as follows:
|
||||
<DL COMPACT><DT><DD>
|
||||
@@ -9881,7 +9922,7 @@ invalid option is supplied or <I>n</I> indexes beyond the end
|
||||
of the directory stack.
|
||||
</DL>
|
||||
|
||||
<DT><B>disown</B> [<B>-ar</B>] [<B>-h</B>] [<I>jobspec</I> ...]<DD>
|
||||
<DT><B>disown</B> [<B>-ar</B>] [<B>-h</B>] [<I>jobspec</I> ... | <I>pid</I> ... ]<DD>
|
||||
Without options, remove each
|
||||
<I>jobspec</I>
|
||||
|
||||
@@ -12023,7 +12064,10 @@ If set,
|
||||
|
||||
changes its behavior to that of version 3.2 with respect to
|
||||
locale-specific string comparison when using the <B>[[</B>
|
||||
conditional command's <B><</B> and <B>></B> operators (see previous item).
|
||||
conditional command's <B><</B> and <B>></B> operators (see previous item)
|
||||
and the effect of interrupting a command list.
|
||||
Bash versions 3.2 and earlier continue with the next command in the list
|
||||
after one terminates due to an interrupt.
|
||||
<DT><B>compat40</B>
|
||||
|
||||
<DD>
|
||||
@@ -12303,6 +12347,12 @@ If set, <B>bash</B> will send
|
||||
|
||||
</FONT>
|
||||
to all jobs when an interactive login shell exits.
|
||||
<DT><B>inherit_errexit</B>
|
||||
|
||||
<DD>
|
||||
If set, command substitution inherits the value of the <B>errexit</B> option,
|
||||
instead of unsetting it in the subshell environment.
|
||||
This option is enabled when <I>posix mode</I> is enabled.
|
||||
<DT><B>interactive_comments</B>
|
||||
|
||||
<DD>
|
||||
@@ -12690,7 +12740,7 @@ is
|
||||
the command
|
||||
<I>arg</I>
|
||||
|
||||
is executed whenever a
|
||||
is executed whenever
|
||||
a pipeline (which may consist of a single simple
|
||||
command), a list, or a compound command returns a
|
||||
non-zero exit status,
|
||||
@@ -13416,7 +13466,7 @@ There may be only one active coprocess at a time.
|
||||
<HR>
|
||||
<TABLE WIDTH=100%>
|
||||
<TR>
|
||||
<TH ALIGN=LEFT width=33%>GNU Bash 4.4<TH ALIGN=CENTER width=33%>2015 October 11<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
<TH ALIGN=LEFT width=33%>GNU Bash 4.4<TH ALIGN=CENTER width=33%>2015 November 16<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
</TR>
|
||||
</TABLE>
|
||||
<HR>
|
||||
@@ -13522,6 +13572,6 @@ There may be only one active coprocess at a time.
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by man2html from bash.1.<BR>
|
||||
Time: 15 October 2015 10:10:58 EDT
|
||||
Time: 03 December 2015 13:58:28 EST
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+4693
-4578
File diff suppressed because it is too large
Load Diff
+5119
-5053
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -162,7 +162,7 @@
|
||||
@xrdef{The Shopt Builtin-pg}{63}
|
||||
@xrdef{Special Builtins-title}{Special Builtins}
|
||||
@xrdef{Special Builtins-snt}{Section@tie 4.4}
|
||||
@xrdef{Special Builtins-pg}{68}
|
||||
@xrdef{Special Builtins-pg}{69}
|
||||
@xrdef{Shell Variables-title}{Shell Variables}
|
||||
@xrdef{Shell Variables-snt}{Chapter@tie 5}
|
||||
@xrdef{Bourne Shell Variables-title}{Bourne Shell Variables}
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@
|
||||
\entry{exit status}{39}{exit status}
|
||||
\entry{signal handling}{39}{signal handling}
|
||||
\entry{shell script}{40}{shell script}
|
||||
\entry{special builtin}{68}{special builtin}
|
||||
\entry{special builtin}{69}{special builtin}
|
||||
\entry{login shell}{83}{login shell}
|
||||
\entry{interactive shell}{83}{interactive shell}
|
||||
\entry{startup files}{83}{startup files}
|
||||
|
||||
+1
-1
@@ -119,7 +119,7 @@
|
||||
\entry {shell, interactive}{84}
|
||||
\entry {signal}{4}
|
||||
\entry {signal handling}{39}
|
||||
\entry {special builtin}{4, 68}
|
||||
\entry {special builtin}{4, 69}
|
||||
\entry {startup files}{83}
|
||||
\entry {suspending jobs}{99}
|
||||
\initial {T}
|
||||
|
||||
Binary file not shown.
+11580
-14016
File diff suppressed because it is too large
Load Diff
+367
-335
File diff suppressed because it is too large
Load Diff
+28
-53
@@ -1,10 +1,12 @@
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/MacPorts 2015_3) (preloaded format=pdftex 2015.7.15) 15 OCT 2015 10:11
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/MacPorts 2015_7) (preloaded format=etex 2015.7.15) 3 DEC 2015 13:54
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
file:line:error style messages enabled.
|
||||
%&-line parsing enabled.
|
||||
**/usr/homes/chet/src/bash/src/doc/bashref.texi
|
||||
(/usr/homes/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
|
||||
Loading texinfo [version 2013-09-11.11]:
|
||||
**\input /usr/homes/chet/src/bash/src/doc/bashref.texi
|
||||
(/usr/homes/chet/src/bash/src/doc/bashref.texi
|
||||
(/opt/local/share/texmf/tex/texinfo/texinfo.tex
|
||||
Loading texinfo [version 2015-06-24.23]:
|
||||
\bindingoffset=\dimen16
|
||||
\normaloffset=\dimen17
|
||||
\pagewidth=\dimen18
|
||||
@@ -179,14 +181,12 @@ texinfo.tex: doing @include of version.texi
|
||||
|
||||
\openout9 = `bashref.rw'.
|
||||
|
||||
{/opt/local/var/db/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] (./bashref.to
|
||||
c [-1] [-2] [-3]) [-4] (./bashref.toc)
|
||||
(./bashref.toc) Chapter 1
|
||||
] [2] (./bashref.toc [-1] [-2] [-3])
|
||||
[-4] Chapter 1
|
||||
\openout0 = `bashref.toc'.
|
||||
|
||||
Chapter 2 [1] [2] [3] Chapter 3 [4] [5] [6] [7]
|
||||
[8] [9] [10]
|
||||
Overfull \hbox (38.26587pt too wide) in paragraph at lines 868--868
|
||||
Chapter 2 [1] [2] [3] Chapter 3 [4] [5] [6] [7] [8] [9] [10]
|
||||
Overfull \hbox (38.26587pt too wide) in paragraph at lines 872--872
|
||||
[]@texttt case @textttsl word @texttt in [ [(] @textttsl pat-tern @texttt [| @
|
||||
textttsl pattern@texttt ][]) @textttsl command-list @texttt ;;][] esac[]
|
||||
|
||||
@@ -199,7 +199,7 @@ textttsl pattern@texttt ][]) @textttsl command-list @texttt ;;][] esac[]
|
||||
.etc.
|
||||
|
||||
[11] [12] [13] [14] [15]
|
||||
Overfull \hbox (89.6747pt too wide) in paragraph at lines 1270--1270
|
||||
Overfull \hbox (89.6747pt too wide) in paragraph at lines 1274--1274
|
||||
[]@texttt cat list | parallel "do-something1 {} config-{} ; do-something2 < {}
|
||||
" | process-output[]
|
||||
|
||||
@@ -212,7 +212,7 @@ Overfull \hbox (89.6747pt too wide) in paragraph at lines 1270--1270
|
||||
.etc.
|
||||
|
||||
|
||||
Overfull \hbox (89.6747pt too wide) in paragraph at lines 1293--1293
|
||||
Overfull \hbox (89.6747pt too wide) in paragraph at lines 1297--1297
|
||||
[]@texttt { echo foss.org.my ; echo debian.org; echo freenetproject.org; } | p
|
||||
arallel traceroute[]
|
||||
|
||||
@@ -225,7 +225,7 @@ arallel traceroute[]
|
||||
.etc.
|
||||
|
||||
|
||||
Overfull \hbox (106.92076pt too wide) in paragraph at lines 1299--1299
|
||||
Overfull \hbox (106.92076pt too wide) in paragraph at lines 1303--1303
|
||||
[]@texttt { echo foss.org.my ; echo debian.org; echo freenetproject.org; } | p
|
||||
arallel -k traceroute[]
|
||||
|
||||
@@ -240,7 +240,7 @@ arallel -k traceroute[]
|
||||
[16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30]
|
||||
[31] [32] [33] [34] [35] [36] [37] [38] [39] Chapter 4 [40] [41] [42] [43]
|
||||
[44] [45] [46] [47] [48] [49] [50] [51] [52] [53]
|
||||
Overfull \hbox (26.76846pt too wide) in paragraph at lines 4244--4244
|
||||
Overfull \hbox (26.76846pt too wide) in paragraph at lines 4254--4254
|
||||
[]@texttt mapfile [-d @textttsl de-lim@texttt ] [-n @textttsl count@texttt ] [
|
||||
-O @textttsl ori-gin@texttt ] [-s @textttsl count@texttt ] [-t] [-u @textttsl f
|
||||
d@texttt ][]
|
||||
@@ -254,7 +254,7 @@ d@texttt ][]
|
||||
.etc.
|
||||
|
||||
[54] [55]
|
||||
Overfull \hbox (38.26584pt too wide) in paragraph at lines 4444--4444
|
||||
Overfull \hbox (38.26584pt too wide) in paragraph at lines 4454--4454
|
||||
[]@texttt readarray [-d @textttsl de-lim@texttt ] [-n @textttsl count@texttt ]
|
||||
[-O @textttsl ori-gin@texttt ] [-s @textttsl count@texttt ] [-t] [-u @textttsl
|
||||
fd@texttt ][]
|
||||
@@ -269,7 +269,7 @@ Overfull \hbox (38.26584pt too wide) in paragraph at lines 4444--4444
|
||||
|
||||
[56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] Chapter 5
|
||||
[69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] Chapter 6 [80]
|
||||
Overfull \hbox (49.43388pt too wide) in paragraph at lines 6124--6124
|
||||
Overfull \hbox (49.43388pt too wide) in paragraph at lines 6160--6160
|
||||
[]@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t
|
||||
exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
|
||||
|
||||
@@ -282,7 +282,7 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
|
||||
.etc.
|
||||
|
||||
|
||||
Overfull \hbox (72.42863pt too wide) in paragraph at lines 6125--6125
|
||||
Overfull \hbox (72.42863pt too wide) in paragraph at lines 6161--6161
|
||||
[]@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt
|
||||
] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar
|
||||
-
|
||||
@@ -296,7 +296,7 @@ Overfull \hbox (72.42863pt too wide) in paragraph at lines 6125--6125
|
||||
.etc.
|
||||
|
||||
|
||||
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6126--6126
|
||||
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6162--6162
|
||||
[]@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
|
||||
tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
|
||||
|
||||
@@ -379,8 +379,8 @@ texinfo.tex: doing @include of fdl.texi
|
||||
(./fdl.texi [155] [156] [157] [158] [159] [160] [161])
|
||||
Appendix D [162] (./bashref.bts) [163] (./bashref.rws) (./bashref.vrs [164]
|
||||
[165]) (./bashref.fns
|
||||
Overfull \vbox (14.52478pt too high) has occurred while \output is active
|
||||
\vbox(35.44023+2.0)x207.80492
|
||||
Overfull \vbox (17.77478pt too high) has occurred while \output is active
|
||||
\vbox(32.19023+2.0)x207.80492
|
||||
.\glue(\topskip) 26.12001
|
||||
.\hbox(9.87999+0.0)x207.80492, glue set 195.57158fil
|
||||
..\secrm A
|
||||
@@ -391,8 +391,8 @@ Overfull \vbox (14.52478pt too high) has occurred while \output is active
|
||||
.etc.
|
||||
|
||||
|
||||
Overfull \vbox (0.55977pt too high) has occurred while \output is active
|
||||
\vbox(35.44023+2.0)x207.80492
|
||||
Overfull \vbox (3.80977pt too high) has occurred while \output is active
|
||||
\vbox(32.19023+2.0)x207.80492
|
||||
.\glue(\splittopskip) 29.75
|
||||
.\hbox(6.25+2.0)x207.80492, glue set 40.04836fill
|
||||
..\smalltt a
|
||||
@@ -401,41 +401,16 @@ Overfull \vbox (0.55977pt too high) has occurred while \output is active
|
||||
..\smalltt e
|
||||
..\smalltt p
|
||||
..etc.
|
||||
.\mark{\gdef \thischaptername {Indexes}\gdef \thischapternum {D}\gdef \thischap
|
||||
ter \ETC.}
|
||||
.\mark{\gdef \thischaptername {Indexes}\gdef \thischapternum {D}\gdef \thischap
|
||||
ter \ETC.}
|
||||
|
||||
|
||||
[166] [167]) (./bashref.cps [168] [169]) [170] )
|
||||
Here is how much of TeX's memory you used:
|
||||
2747 strings out of 497110
|
||||
37302 string characters out of 6206875
|
||||
156623 words of memory out of 5000000
|
||||
3523 multiletter control sequences out of 15000+600000
|
||||
3039 strings out of 497120
|
||||
36111 string characters out of 6207257
|
||||
88244 words of memory out of 5000000
|
||||
4187 multiletter control sequences out of 15000+600000
|
||||
32896 words of font info for 113 fonts, out of 8000000 for 9000
|
||||
51 hyphenation exceptions out of 8191
|
||||
16i,6n,16p,319b,967s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
{/opt/local/share/texmf-texlive
|
||||
/fonts/enc/dvips/cm-super/cm-super-t1.enc}</opt/local/share/texmf-texlive/fonts
|
||||
/type1/public/amsfonts/cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type
|
||||
1/public/amsfonts/cm/cmcsc10.pfb></opt/local/share/texmf-texlive/fonts/type1/pu
|
||||
blic/amsfonts/cm/cmmi10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/
|
||||
amsfonts/cm/cmmi12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfo
|
||||
nts/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/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb><
|
||||
/opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsltt10.pfb></op
|
||||
t/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></opt/loc
|
||||
al/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/sh
|
||||
are/texmf-texlive/fonts/type1/public/amsfonts/cm/cmtt10.pfb></opt/local/share/t
|
||||
exmf-texlive/fonts/type1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-
|
||||
texlive/fonts/type1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texliv
|
||||
e/fonts/type1/public/cm-super/sfrm1095.pfb>
|
||||
Output written on bashref.pdf (176 pages, 730163 bytes).
|
||||
PDF statistics:
|
||||
2560 PDF objects out of 2984 (max. 8388607)
|
||||
2340 compressed objects within 24 object streams
|
||||
302 named destinations out of 1000 (max. 500000)
|
||||
1125 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
16i,6n,16p,326b,871s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
|
||||
Output written on bashref.dvi (176 pages, 739900 bytes).
|
||||
|
||||
+2991
-2949
File diff suppressed because it is too large
Load Diff
+1
-2
@@ -1,4 +1,4 @@
|
||||
input texinfo.tex @c -*- texinfo -*-
|
||||
\input texinfo.tex @c -*- texinfo -*-
|
||||
@c %**start of header
|
||||
@setfilename bashref.info
|
||||
@settitle Bash Reference Manual
|
||||
@@ -454,7 +454,6 @@ When the shell is in
|
||||
@sc{posix} mode (@pxref{Bash POSIX Mode}),
|
||||
the @samp{!} has no special meaning
|
||||
within double quotes, even when history expansion is enabled.
|
||||
The characters
|
||||
The characters @samp{$} and @samp{`}
|
||||
retain their special meaning within double quotes (@pxref{Shell Expansions}).
|
||||
The backslash retains its special meaning only when followed by one of
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@
|
||||
@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{59}
|
||||
@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{59}
|
||||
@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{63}
|
||||
@numsecentry{Special Builtins}{4.4}{Special Builtins}{68}
|
||||
@numsecentry{Special Builtins}{4.4}{Special Builtins}{69}
|
||||
@numchapentry{Shell Variables}{5}{Shell Variables}{70}
|
||||
@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{70}
|
||||
@numsecentry{Bash Variables}{5.2}{Bash Variables}{70}
|
||||
|
||||
+16
-15
@@ -37,7 +37,7 @@
|
||||
\entry{BASH_ARGV}{71}{\code {BASH_ARGV}}
|
||||
\entry{BASH_CMDS}{71}{\code {BASH_CMDS}}
|
||||
\entry{BASH_COMMAND}{71}{\code {BASH_COMMAND}}
|
||||
\entry{BASH_COMPAT}{71}{\code {BASH_COMPAT}}
|
||||
\entry{BASH_COMPAT}{72}{\code {BASH_COMPAT}}
|
||||
\entry{BASH_ENV}{72}{\code {BASH_ENV}}
|
||||
\entry{BASH_EXECUTION_STRING}{72}{\code {BASH_EXECUTION_STRING}}
|
||||
\entry{BASH_LINENO}{72}{\code {BASH_LINENO}}
|
||||
@@ -52,7 +52,7 @@
|
||||
\entry{COLUMNS}{73}{\code {COLUMNS}}
|
||||
\entry{COMP_CWORD}{73}{\code {COMP_CWORD}}
|
||||
\entry{COMP_LINE}{73}{\code {COMP_LINE}}
|
||||
\entry{COMP_POINT}{73}{\code {COMP_POINT}}
|
||||
\entry{COMP_POINT}{74}{\code {COMP_POINT}}
|
||||
\entry{COMP_TYPE}{74}{\code {COMP_TYPE}}
|
||||
\entry{COMP_KEY}{74}{\code {COMP_KEY}}
|
||||
\entry{COMP_WORDBREAKS}{74}{\code {COMP_WORDBREAKS}}
|
||||
@@ -61,9 +61,9 @@
|
||||
\entry{COPROC}{74}{\code {COPROC}}
|
||||
\entry{DIRSTACK}{74}{\code {DIRSTACK}}
|
||||
\entry{EMACS}{74}{\code {EMACS}}
|
||||
\entry{ENV}{74}{\code {ENV}}
|
||||
\entry{EUID}{74}{\code {EUID}}
|
||||
\entry{EXECIGNORE}{74}{\code {EXECIGNORE}}
|
||||
\entry{ENV}{75}{\code {ENV}}
|
||||
\entry{EUID}{75}{\code {EUID}}
|
||||
\entry{EXECIGNORE}{75}{\code {EXECIGNORE}}
|
||||
\entry{FCEDIT}{75}{\code {FCEDIT}}
|
||||
\entry{FIGNORE}{75}{\code {FIGNORE}}
|
||||
\entry{FUNCNAME}{75}{\code {FUNCNAME}}
|
||||
@@ -71,13 +71,13 @@
|
||||
\entry{GLOBIGNORE}{75}{\code {GLOBIGNORE}}
|
||||
\entry{GROUPS}{75}{\code {GROUPS}}
|
||||
\entry{histchars}{75}{\code {histchars}}
|
||||
\entry{HISTCMD}{75}{\code {HISTCMD}}
|
||||
\entry{HISTCMD}{76}{\code {HISTCMD}}
|
||||
\entry{HISTCONTROL}{76}{\code {HISTCONTROL}}
|
||||
\entry{HISTFILE}{76}{\code {HISTFILE}}
|
||||
\entry{HISTFILESIZE}{76}{\code {HISTFILESIZE}}
|
||||
\entry{HISTIGNORE}{76}{\code {HISTIGNORE}}
|
||||
\entry{HISTSIZE}{76}{\code {HISTSIZE}}
|
||||
\entry{HISTTIMEFORMAT}{76}{\code {HISTTIMEFORMAT}}
|
||||
\entry{HISTSIZE}{77}{\code {HISTSIZE}}
|
||||
\entry{HISTTIMEFORMAT}{77}{\code {HISTTIMEFORMAT}}
|
||||
\entry{HOSTFILE}{77}{\code {HOSTFILE}}
|
||||
\entry{HOSTNAME}{77}{\code {HOSTNAME}}
|
||||
\entry{HOSTTYPE}{77}{\code {HOSTTYPE}}
|
||||
@@ -87,10 +87,10 @@
|
||||
\entry{LC_ALL}{77}{\code {LC_ALL}}
|
||||
\entry{LC_COLLATE}{77}{\code {LC_COLLATE}}
|
||||
\entry{LC_CTYPE}{77}{\code {LC_CTYPE}}
|
||||
\entry{LC_MESSAGES}{77}{\code {LC_MESSAGES}}
|
||||
\entry{LC_NUMERIC}{77}{\code {LC_NUMERIC}}
|
||||
\entry{LC_TIME}{77}{\code {LC_TIME}}
|
||||
\entry{LINENO}{77}{\code {LINENO}}
|
||||
\entry{LC_MESSAGES}{78}{\code {LC_MESSAGES}}
|
||||
\entry{LC_NUMERIC}{78}{\code {LC_NUMERIC}}
|
||||
\entry{LC_TIME}{78}{\code {LC_TIME}}
|
||||
\entry{LINENO}{78}{\code {LINENO}}
|
||||
\entry{LINES}{78}{\code {LINES}}
|
||||
\entry{MACHTYPE}{78}{\code {MACHTYPE}}
|
||||
\entry{MAILCHECK}{78}{\code {MAILCHECK}}
|
||||
@@ -102,8 +102,9 @@
|
||||
\entry{POSIXLY_CORRECT}{78}{\code {POSIXLY_CORRECT}}
|
||||
\entry{PPID}{78}{\code {PPID}}
|
||||
\entry{PROMPT_COMMAND}{78}{\code {PROMPT_COMMAND}}
|
||||
\entry{PROMPT_DIRTRIM}{78}{\code {PROMPT_DIRTRIM}}
|
||||
\entry{PS3}{78}{\code {PS3}}
|
||||
\entry{PROMPT_DIRTRIM}{79}{\code {PROMPT_DIRTRIM}}
|
||||
\entry{PS0}{79}{\code {PS0}}
|
||||
\entry{PS3}{79}{\code {PS3}}
|
||||
\entry{PS4}{79}{\code {PS4}}
|
||||
\entry{PWD}{79}{\code {PWD}}
|
||||
\entry{RANDOM}{79}{\code {RANDOM}}
|
||||
@@ -114,7 +115,7 @@
|
||||
\entry{SHELL}{79}{\code {SHELL}}
|
||||
\entry{SHELLOPTS}{79}{\code {SHELLOPTS}}
|
||||
\entry{SHLVL}{79}{\code {SHLVL}}
|
||||
\entry{TIMEFORMAT}{79}{\code {TIMEFORMAT}}
|
||||
\entry{TIMEFORMAT}{80}{\code {TIMEFORMAT}}
|
||||
\entry{TMOUT}{80}{\code {TMOUT}}
|
||||
\entry{TMPDIR}{80}{\code {TMPDIR}}
|
||||
\entry{UID}{80}{\code {UID}}
|
||||
|
||||
+16
-15
@@ -34,7 +34,7 @@
|
||||
\entry {\code {BASH_ARGV}}{71}
|
||||
\entry {\code {BASH_CMDS}}{71}
|
||||
\entry {\code {BASH_COMMAND}}{71}
|
||||
\entry {\code {BASH_COMPAT}}{71}
|
||||
\entry {\code {BASH_COMPAT}}{72}
|
||||
\entry {\code {BASH_ENV}}{72}
|
||||
\entry {\code {BASH_EXECUTION_STRING}}{72}
|
||||
\entry {\code {BASH_LINENO}}{72}
|
||||
@@ -60,7 +60,7 @@
|
||||
\entry {\code {COMP_CWORD}}{73}
|
||||
\entry {\code {COMP_KEY}}{74}
|
||||
\entry {\code {COMP_LINE}}{73}
|
||||
\entry {\code {COMP_POINT}}{73}
|
||||
\entry {\code {COMP_POINT}}{74}
|
||||
\entry {\code {COMP_TYPE}}{74}
|
||||
\entry {\code {COMP_WORDBREAKS}}{74}
|
||||
\entry {\code {COMP_WORDS}}{74}
|
||||
@@ -82,9 +82,9 @@
|
||||
\entry {\code {EMACS}}{74}
|
||||
\entry {\code {enable-bracketed-paste}}{109}
|
||||
\entry {\code {enable-keypad}}{109}
|
||||
\entry {\code {ENV}}{74}
|
||||
\entry {\code {EUID}}{74}
|
||||
\entry {\code {EXECIGNORE}}{74}
|
||||
\entry {\code {ENV}}{75}
|
||||
\entry {\code {EUID}}{75}
|
||||
\entry {\code {EXECIGNORE}}{75}
|
||||
\entry {\code {expand-tilde}}{109}
|
||||
\initial {F}
|
||||
\entry {\code {FCEDIT}}{75}
|
||||
@@ -96,15 +96,15 @@
|
||||
\entry {\code {GROUPS}}{75}
|
||||
\initial {H}
|
||||
\entry {\code {histchars}}{75}
|
||||
\entry {\code {HISTCMD}}{75}
|
||||
\entry {\code {HISTCMD}}{76}
|
||||
\entry {\code {HISTCONTROL}}{76}
|
||||
\entry {\code {HISTFILE}}{76}
|
||||
\entry {\code {HISTFILESIZE}}{76}
|
||||
\entry {\code {HISTIGNORE}}{76}
|
||||
\entry {\code {history-preserve-point}}{109}
|
||||
\entry {\code {history-size}}{109}
|
||||
\entry {\code {HISTSIZE}}{76}
|
||||
\entry {\code {HISTTIMEFORMAT}}{76}
|
||||
\entry {\code {HISTSIZE}}{77}
|
||||
\entry {\code {HISTTIMEFORMAT}}{77}
|
||||
\entry {\code {HOME}}{70}
|
||||
\entry {\code {horizontal-scroll-mode}}{109}
|
||||
\entry {\code {HOSTFILE}}{77}
|
||||
@@ -123,10 +123,10 @@
|
||||
\entry {\code {LC_ALL}}{77}
|
||||
\entry {\code {LC_COLLATE}}{77}
|
||||
\entry {\code {LC_CTYPE}}{77}
|
||||
\entry {\code {LC_MESSAGES}}{7, 77}
|
||||
\entry {\code {LC_NUMERIC}}{77}
|
||||
\entry {\code {LC_TIME}}{77}
|
||||
\entry {\code {LINENO}}{77}
|
||||
\entry {\code {LC_MESSAGES}}{7, 78}
|
||||
\entry {\code {LC_NUMERIC}}{78}
|
||||
\entry {\code {LC_TIME}}{78}
|
||||
\entry {\code {LINENO}}{78}
|
||||
\entry {\code {LINES}}{78}
|
||||
\initial {M}
|
||||
\entry {\code {MACHTYPE}}{78}
|
||||
@@ -153,10 +153,11 @@
|
||||
\entry {\code {POSIXLY_CORRECT}}{78}
|
||||
\entry {\code {PPID}}{78}
|
||||
\entry {\code {PROMPT_COMMAND}}{78}
|
||||
\entry {\code {PROMPT_DIRTRIM}}{78}
|
||||
\entry {\code {PROMPT_DIRTRIM}}{79}
|
||||
\entry {\code {PS0}}{79}
|
||||
\entry {\code {PS1}}{70}
|
||||
\entry {\code {PS2}}{70}
|
||||
\entry {\code {PS3}}{78}
|
||||
\entry {\code {PS3}}{79}
|
||||
\entry {\code {PS4}}{79}
|
||||
\entry {\code {PWD}}{79}
|
||||
\initial {R}
|
||||
@@ -177,7 +178,7 @@
|
||||
\initial {T}
|
||||
\entry {\code {TEXTDOMAIN}}{7}
|
||||
\entry {\code {TEXTDOMAINDIR}}{7}
|
||||
\entry {\code {TIMEFORMAT}}{79}
|
||||
\entry {\code {TIMEFORMAT}}{80}
|
||||
\entry {\code {TMOUT}}{80}
|
||||
\entry {\code {TMPDIR}}{80}
|
||||
\initial {U}
|
||||
|
||||
+85
-77
@@ -469,7 +469,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
The return value is 0 unless an invalid option is supplied or _n
|
||||
indexes beyond the end of the directory stack.
|
||||
|
||||
ddiissoowwnn [--aarr] [--hh] [_j_o_b_s_p_e_c ...]
|
||||
ddiissoowwnn [--aarr] [--hh] [_j_o_b_s_p_e_c ... | _p_i_d ... ]
|
||||
Without options, remove each _j_o_b_s_p_e_c from the table of active
|
||||
jobs. If _j_o_b_s_p_e_c is not present, and neither the --aa nor the --rr
|
||||
option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. If the --hh option
|
||||
@@ -1319,148 +1319,156 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
If set, bbaasshh changes its behavior to that of version 3.2
|
||||
with respect to locale-specific string comparison when
|
||||
using the [[[[ conditional command's << and >> operators
|
||||
(see previous item).
|
||||
(see previous item) and the effect of interrupting a
|
||||
command list. Bash versions 3.2 and earlier continue
|
||||
with the next command in the list after one terminates
|
||||
due to an interrupt.
|
||||
ccoommppaatt4400
|
||||
If set, bbaasshh changes its behavior to that of version 4.0
|
||||
with respect to locale-specific string comparison when
|
||||
using the [[[[ conditional command's << and >> operators
|
||||
(see description of ccoommppaatt3311) and the effect of inter-
|
||||
rupting a command list. Bash versions 4.0 and later
|
||||
interrupt the list as if the shell received the inter-
|
||||
rupt; previous versions continue with the next command
|
||||
with respect to locale-specific string comparison when
|
||||
using the [[[[ conditional command's << and >> operators
|
||||
(see description of ccoommppaatt3311) and the effect of inter-
|
||||
rupting a command list. Bash versions 4.0 and later
|
||||
interrupt the list as if the shell received the inter-
|
||||
rupt; previous versions continue with the next command
|
||||
in the list.
|
||||
ccoommppaatt4411
|
||||
If set, bbaasshh, when in _p_o_s_i_x mode, treats a single quote
|
||||
in a double-quoted parameter expansion as a special
|
||||
character. The single quotes must match (an even num-
|
||||
ber) and the characters between the single quotes are
|
||||
considered quoted. This is the behavior of posix mode
|
||||
through version 4.1. The default bash behavior remains
|
||||
If set, bbaasshh, when in _p_o_s_i_x mode, treats a single quote
|
||||
in a double-quoted parameter expansion as a special
|
||||
character. The single quotes must match (an even num-
|
||||
ber) and the characters between the single quotes are
|
||||
considered quoted. This is the behavior of posix mode
|
||||
through version 4.1. The default bash behavior remains
|
||||
as in previous versions.
|
||||
ccoommppaatt4422
|
||||
If set, bbaasshh does not process the replacement string in
|
||||
the pattern substitution word expansion using quote
|
||||
If set, bbaasshh does not process the replacement string in
|
||||
the pattern substitution word expansion using quote
|
||||
removal.
|
||||
ccoommppaatt4433
|
||||
If set, bbaasshh does not print a warning message if an
|
||||
attempt is made to use a quoted compound array assign-
|
||||
ment as an argument to ddeeccllaarree, makes word expansion
|
||||
errors non-fatal errors that cause the current command
|
||||
to fail (the default behavior is to make them fatal
|
||||
If set, bbaasshh does not print a warning message if an
|
||||
attempt is made to use a quoted compound array assign-
|
||||
ment as an argument to ddeeccllaarree, makes word expansion
|
||||
errors non-fatal errors that cause the current command
|
||||
to fail (the default behavior is to make them fatal
|
||||
errors that cause the shell to exit), and does not reset
|
||||
the loop state when a shell function is executed (this
|
||||
allows bbrreeaakk or ccoonnttiinnuuee in a shell function to affect
|
||||
the loop state when a shell function is executed (this
|
||||
allows bbrreeaakk or ccoonnttiinnuuee in a shell function to affect
|
||||
loops in the caller's context).
|
||||
ccoommpplleettee__ffuullllqquuoottee
|
||||
If set, bbaasshh quotes all shell metacharacters in file-
|
||||
names and directory names when performing completion.
|
||||
If set, bbaasshh quotes all shell metacharacters in file-
|
||||
names and directory names when performing completion.
|
||||
If not set, bbaasshh removes metacharacters such as the dol-
|
||||
lar sign from the set of characters that will be quoted
|
||||
in completed filenames when these metacharacters appear
|
||||
in shell variable references in words to be completed.
|
||||
This means that dollar signs in variable names that
|
||||
expand to directories will not be quoted; however, any
|
||||
dollar signs appearing in filenames will not be quoted,
|
||||
either. This is active only when bash is using back-
|
||||
slashes to quote completed filenames. This variable is
|
||||
set by default, which is the default bash behavior in
|
||||
lar sign from the set of characters that will be quoted
|
||||
in completed filenames when these metacharacters appear
|
||||
in shell variable references in words to be completed.
|
||||
This means that dollar signs in variable names that
|
||||
expand to directories will not be quoted; however, any
|
||||
dollar signs appearing in filenames will not be quoted,
|
||||
either. This is active only when bash is using back-
|
||||
slashes to quote completed filenames. This variable is
|
||||
set by default, which is the default bash behavior in
|
||||
versions through 4.2.
|
||||
ddiirreexxppaanndd
|
||||
If set, bbaasshh replaces directory names with the results
|
||||
of word expansion when performing filename completion.
|
||||
This changes the contents of the readline editing buf-
|
||||
fer. If not set, bbaasshh attempts to preserve what the
|
||||
If set, bbaasshh replaces directory names with the results
|
||||
of word expansion when performing filename completion.
|
||||
This changes the contents of the readline editing buf-
|
||||
fer. If not set, bbaasshh attempts to preserve what the
|
||||
user typed.
|
||||
ddiirrssppeellll
|
||||
If set, bbaasshh attempts spelling correction on directory
|
||||
names during word completion if the directory name ini-
|
||||
If set, bbaasshh attempts spelling correction on directory
|
||||
names during word completion if the directory name ini-
|
||||
tially supplied does not exist.
|
||||
ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
|
||||
ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
|
||||
the results of pathname expansion.
|
||||
eexxeeccffaaiill
|
||||
If set, a non-interactive shell will not exit if it can-
|
||||
not execute the file specified as an argument to the
|
||||
eexxeecc builtin command. An interactive shell does not
|
||||
not execute the file specified as an argument to the
|
||||
eexxeecc builtin command. An interactive shell does not
|
||||
exit if eexxeecc fails.
|
||||
eexxppaanndd__aalliiaasseess
|
||||
If set, aliases are expanded as described above under
|
||||
If set, aliases are expanded as described above under
|
||||
AALLIIAASSEESS. This option is enabled by default for interac-
|
||||
tive shells.
|
||||
eexxttddeebbuugg
|
||||
If set, behavior intended for use by debuggers is
|
||||
If set, behavior intended for use by debuggers is
|
||||
enabled:
|
||||
11.. The --FF option to the ddeeccllaarree builtin displays the
|
||||
source file name and line number corresponding to
|
||||
each function name supplied as an argument.
|
||||
22.. If the command run by the DDEEBBUUGG trap returns a
|
||||
non-zero value, the next command is skipped and
|
||||
22.. If the command run by the DDEEBBUUGG trap returns a
|
||||
non-zero value, the next command is skipped and
|
||||
not executed.
|
||||
33.. If the command run by the DDEEBBUUGG trap returns a
|
||||
value of 2, and the shell is executing in a sub-
|
||||
routine (a shell function or a shell script exe-
|
||||
cuted by the .. or ssoouurrccee builtins), the shell
|
||||
33.. If the command run by the DDEEBBUUGG trap returns a
|
||||
value of 2, and the shell is executing in a sub-
|
||||
routine (a shell function or a shell script exe-
|
||||
cuted by the .. or ssoouurrccee builtins), the shell
|
||||
simulates a call to rreettuurrnn.
|
||||
44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
|
||||
44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
|
||||
in their descriptions above.
|
||||
55.. Function tracing is enabled: command substitu-
|
||||
55.. Function tracing is enabled: command substitu-
|
||||
tion, shell functions, and subshells invoked with
|
||||
(( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps.
|
||||
66.. Error tracing is enabled: command substitution,
|
||||
shell functions, and subshells invoked with ((
|
||||
66.. Error tracing is enabled: command substitution,
|
||||
shell functions, and subshells invoked with ((
|
||||
_c_o_m_m_a_n_d )) inherit the EERRRR trap.
|
||||
eexxttgglloobb If set, the extended pattern matching features described
|
||||
above under PPaatthhnnaammee EExxppaannssiioonn are enabled.
|
||||
eexxttqquuoottee
|
||||
If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
|
||||
within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
|
||||
If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
|
||||
within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
|
||||
quotes. This option is enabled by default.
|
||||
ffaaiillgglloobb
|
||||
If set, patterns which fail to match filenames during
|
||||
If set, patterns which fail to match filenames during
|
||||
pathname expansion result in an expansion error.
|
||||
ffoorrccee__ffiiggnnoorree
|
||||
If set, the suffixes specified by the FFIIGGNNOORREE shell
|
||||
variable cause words to be ignored when performing word
|
||||
If set, the suffixes specified by the FFIIGGNNOORREE shell
|
||||
variable cause words to be ignored when performing word
|
||||
completion even if the ignored words are the only possi-
|
||||
ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a
|
||||
description of FFIIGGNNOORREE. This option is enabled by
|
||||
description of FFIIGGNNOORREE. This option is enabled by
|
||||
default.
|
||||
gglloobbaasscciiiirraannggeess
|
||||
If set, range expressions used in pattern matching
|
||||
bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave
|
||||
as if in the traditional C locale when performing com-
|
||||
If set, range expressions used in pattern matching
|
||||
bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave
|
||||
as if in the traditional C locale when performing com-
|
||||
parisons. That is, the current locale's collating
|
||||
sequence is not taken into account, so bb will not col-
|
||||
late between AA and BB, and upper-case and lower-case
|
||||
sequence is not taken into account, so bb will not col-
|
||||
late between AA and BB, and upper-case and lower-case
|
||||
ASCII characters will collate together.
|
||||
gglloobbssttaarr
|
||||
If set, the pattern **** used in a pathname expansion con-
|
||||
text will match all files and zero or more directories
|
||||
and subdirectories. If the pattern is followed by a //,
|
||||
text will match all files and zero or more directories
|
||||
and subdirectories. If the pattern is followed by a //,
|
||||
only directories and subdirectories match.
|
||||
ggnnuu__eerrrrffmmtt
|
||||
If set, shell error messages are written in the standard
|
||||
GNU error message format.
|
||||
hhiissttaappppeenndd
|
||||
If set, the history list is appended to the file named
|
||||
by the value of the HHIISSTTFFIILLEE variable when the shell
|
||||
If set, the history list is appended to the file named
|
||||
by the value of the HHIISSTTFFIILLEE variable when the shell
|
||||
exits, rather than overwriting the file.
|
||||
hhiissttrreeeeddiitt
|
||||
If set, and rreeaaddlliinnee is being used, a user is given the
|
||||
If set, and rreeaaddlliinnee is being used, a user is given the
|
||||
opportunity to re-edit a failed history substitution.
|
||||
hhiissttvveerriiffyy
|
||||
If set, and rreeaaddlliinnee is being used, the results of his-
|
||||
tory substitution are not immediately passed to the
|
||||
shell parser. Instead, the resulting line is loaded
|
||||
If set, and rreeaaddlliinnee is being used, the results of his-
|
||||
tory substitution are not immediately passed to the
|
||||
shell parser. Instead, the resulting line is loaded
|
||||
into the rreeaaddlliinnee editing buffer, allowing further modi-
|
||||
fication.
|
||||
hhoossttccoommpplleettee
|
||||
If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to
|
||||
perform hostname completion when a word containing a @@
|
||||
is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
|
||||
perform hostname completion when a word containing a @@
|
||||
is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
|
||||
above). This is enabled by default.
|
||||
hhuuppoonneexxiitt
|
||||
If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter-
|
||||
active login shell exits.
|
||||
iinnhheerriitt__eerrrreexxiitt
|
||||
If set, command substitution inherits the value of the
|
||||
eerrrreexxiitt option, instead of unsetting it in the subshell
|
||||
environment. This option is enabled when _p_o_s_i_x _m_o_d_e is
|
||||
enabled.
|
||||
iinntteerraaccttiivvee__ccoommmmeennttss
|
||||
If set, allow a word beginning with ## to cause that word
|
||||
and all remaining characters on that line to be ignored
|
||||
@@ -1628,7 +1636,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
function or a script executed with the .. or ssoouurrccee builtins fin-
|
||||
ishes executing.
|
||||
|
||||
If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a a
|
||||
If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a
|
||||
pipeline (which may consist of a single simple command), a list,
|
||||
or a compound command returns a non-zero exit status, subject to
|
||||
the following conditions. The EERRRR trap is not executed if the
|
||||
|
||||
+420
-415
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1,6 +1,6 @@
|
||||
%!PS-Adobe-3.0
|
||||
%%Creator: groff version 1.22.3
|
||||
%%CreationDate: Wed Oct 14 11:38:11 2015
|
||||
%%CreationDate: Thu Dec 3 11:00:54 2015
|
||||
%%DocumentNeededResources: font Times-Roman
|
||||
%%+ font Times-Bold
|
||||
%%DocumentSuppliedResources: procset grops 1.22 3
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+18
-13
@@ -3869,19 +3869,20 @@ fix_assignment_words (words)
|
||||
for (wcmd = words; wcmd; wcmd = wcmd->next)
|
||||
if ((wcmd->word->flags & W_ASSIGNMENT) == 0)
|
||||
break;
|
||||
/* Posix (post-2008) says that `command' doesn't change whether
|
||||
or not the builtin it shadows is a `declaration command', even
|
||||
though it removes other special builtin properties. In Posix
|
||||
mode, we skip over one or more instances of `command' and
|
||||
deal with the next word as the assignment builtin. */
|
||||
while (posixly_correct && wcmd && wcmd->word && wcmd->word->word && STREQ (wcmd->word->word, "command"))
|
||||
wcmd = wcmd->next;
|
||||
|
||||
for (w = wcmd; w; w = w->next)
|
||||
if (w->word->flags & W_ASSIGNMENT)
|
||||
{
|
||||
/* Lazy builtin lookup, only do it if we find an assignment */
|
||||
if (b == 0)
|
||||
{
|
||||
/* Posix (post-2008) says that `command' doesn't change whether
|
||||
or not the builtin it shadows is a `declaration command', even
|
||||
though it removes other special builtin properties. In Posix
|
||||
mode, we skip over one or more instances of `command' and
|
||||
deal with the next word as the assignment builtin. */
|
||||
while (posixly_correct && wcmd && wcmd->word && wcmd->word->word && STREQ (wcmd->word->word, "command"))
|
||||
wcmd = wcmd->next;
|
||||
b = builtin_address_internal (wcmd->word->word, 0);
|
||||
if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0)
|
||||
return;
|
||||
@@ -3897,6 +3898,12 @@ fix_assignment_words (words)
|
||||
#endif
|
||||
if (global)
|
||||
w->word->flags |= W_ASSNGLOBAL;
|
||||
|
||||
/* If we have an assignment builtin that does not create local variables,
|
||||
make sure we create global variables even if we internally call
|
||||
`declare' */
|
||||
if (b && ((b->flags & (ASSIGNMENT_BUILTIN|LOCALVAR_BUILTIN)) == ASSIGNMENT_BUILTIN))
|
||||
w->word->flags |= W_ASSNGLOBAL;
|
||||
}
|
||||
#if defined (ARRAY_VARS)
|
||||
/* Note that we saw an associative array option to a builtin that takes
|
||||
@@ -3908,8 +3915,6 @@ fix_assignment_words (words)
|
||||
{
|
||||
if (b == 0)
|
||||
{
|
||||
while (posixly_correct && wcmd && wcmd->word && wcmd->word->word && STREQ (wcmd->word->word, "command"))
|
||||
wcmd = wcmd->next;
|
||||
b = builtin_address_internal (wcmd->word->word, 0);
|
||||
if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0)
|
||||
return;
|
||||
@@ -4364,12 +4369,11 @@ execute_builtin (builtin, words, flags, subshell)
|
||||
WORD_LIST *words;
|
||||
int flags, subshell;
|
||||
{
|
||||
int old_e_flag, result, eval_unwind;
|
||||
int result, eval_unwind, ignexit_flag, old_e_flag;
|
||||
int isbltinenv;
|
||||
char *error_trap;
|
||||
|
||||
error_trap = 0;
|
||||
old_e_flag = exit_immediately_on_error;
|
||||
|
||||
/* The eval builtin calls parse_and_execute, which does not know about
|
||||
the setting of flags, and always calls the execution functions with
|
||||
@@ -4393,6 +4397,7 @@ execute_builtin (builtin, words, flags, subshell)
|
||||
restore_default_signal (ERROR_TRAP);
|
||||
}
|
||||
exit_immediately_on_error = 0;
|
||||
ignexit_flag = builtin_ignoring_errexit;
|
||||
builtin_ignoring_errexit = 1;
|
||||
eval_unwind = 1;
|
||||
}
|
||||
@@ -4469,8 +4474,8 @@ execute_builtin (builtin, words, flags, subshell)
|
||||
|
||||
if (eval_unwind)
|
||||
{
|
||||
exit_immediately_on_error = errexit_flag;
|
||||
builtin_ignoring_errexit = 0;
|
||||
builtin_ignoring_errexit = ignexit_flag;
|
||||
exit_immediately_on_error = builtin_ignoring_errexit ? 0 : errexit_flag;
|
||||
if (error_trap)
|
||||
{
|
||||
set_error_trap (error_trap);
|
||||
|
||||
@@ -47,6 +47,11 @@ extern int errno;
|
||||
#define DEFAULT_TMPDIR "." /* bogus default, should be changed */
|
||||
#define DEFAULT_NAMEROOT "shtmp"
|
||||
|
||||
/* Use ANSI-C rand() interface if random(3) is not available */
|
||||
#if !HAVE_RANDOM
|
||||
#define random() rand()
|
||||
#endif
|
||||
|
||||
extern pid_t dollar_dollar_pid;
|
||||
|
||||
static char *get_sys_tmpdir __P((void));
|
||||
|
||||
@@ -58,6 +58,8 @@ extern int line_number, current_command_line_count, parser_state;
|
||||
extern int last_command_exit_value;
|
||||
extern int shell_initialized;
|
||||
|
||||
int here_doc_first_line = 0;
|
||||
|
||||
/* Object caching */
|
||||
sh_obj_cache_t wdcache = {0, 0, 0};
|
||||
sh_obj_cache_t wlcache = {0, 0, 0};
|
||||
@@ -623,6 +625,7 @@ make_here_document (temp, lineno)
|
||||
register char *line;
|
||||
int len;
|
||||
|
||||
here_doc_first_line = 0;
|
||||
line = full_line;
|
||||
line_number++;
|
||||
|
||||
@@ -674,6 +677,7 @@ document_done:
|
||||
document[0] = '\0';
|
||||
}
|
||||
temp->redirectee.filename->word = document;
|
||||
here_doc_first_line = 0;
|
||||
}
|
||||
|
||||
/* Generate a REDIRECT from SOURCE, DEST, and INSTRUCTION.
|
||||
|
||||
@@ -125,6 +125,7 @@ extern char *dist_version;
|
||||
extern int patch_level;
|
||||
extern int dump_translatable_strings, dump_po_strings;
|
||||
extern sh_builtin_func_t *last_shell_builtin, *this_shell_builtin;
|
||||
extern int here_doc_first_line;
|
||||
#if defined (BUFFERED_INPUT)
|
||||
extern int bash_input_fd_changed;
|
||||
#endif
|
||||
@@ -2698,6 +2699,7 @@ gather_here_documents ()
|
||||
int r;
|
||||
|
||||
r = 0;
|
||||
here_doc_first_line = 1;
|
||||
while (need_here_doc > 0)
|
||||
{
|
||||
parser_state |= PST_HEREDOC;
|
||||
@@ -2706,6 +2708,7 @@ gather_here_documents ()
|
||||
need_here_doc--;
|
||||
redir_stack[r - 1] = 0; /* XXX */
|
||||
}
|
||||
here_doc_first_line = 0; /* just in case */
|
||||
}
|
||||
|
||||
/* When non-zero, an open-brace used to create a group is awaiting a close
|
||||
@@ -3021,6 +3024,7 @@ reset_parser ()
|
||||
#endif
|
||||
|
||||
parser_state = 0;
|
||||
here_doc_first_line = 0;
|
||||
|
||||
#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
|
||||
if (pushed_string_list)
|
||||
@@ -5156,7 +5160,7 @@ history_delimiting_chars (line)
|
||||
last_was_heredoc = 0;
|
||||
return "\n";
|
||||
}
|
||||
return (current_command_line_count == 2 ? "\n" : "");
|
||||
return (here_doc_first_line ? "\n" : "");
|
||||
}
|
||||
|
||||
if (parser_state & PST_COMPASSIGN)
|
||||
@@ -5191,7 +5195,8 @@ history_delimiting_chars (line)
|
||||
last_was_heredoc = 1;
|
||||
return "\n";
|
||||
}
|
||||
|
||||
else if ((parser_state & PST_HEREDOC) == 0 && current_command_line_count > 1 && need_here_doc > 0)
|
||||
return "\n";
|
||||
else if (token_before_that == WORD && two_tokens_ago == FOR)
|
||||
{
|
||||
/* Tricky. `for i\nin ...' should not have a semicolon, but
|
||||
@@ -6187,6 +6192,7 @@ save_parser_state (ps)
|
||||
ps->expand_aliases = expand_aliases;
|
||||
ps->echo_input_at_read = echo_input_at_read;
|
||||
ps->need_here_doc = need_here_doc;
|
||||
ps->here_doc_first_line = here_doc_first_line;
|
||||
|
||||
#if 0
|
||||
for (i = 0; i < HEREDOC_MAX; i++)
|
||||
@@ -6248,6 +6254,7 @@ restore_parser_state (ps)
|
||||
expand_aliases = ps->expand_aliases;
|
||||
echo_input_at_read = ps->echo_input_at_read;
|
||||
need_here_doc = ps->need_here_doc;
|
||||
here_doc_first_line = ps->here_doc_first_line;
|
||||
|
||||
#if 0
|
||||
for (i = 0; i < HEREDOC_MAX; i++)
|
||||
|
||||
@@ -172,6 +172,7 @@ typedef struct _sh_parser_state_t {
|
||||
int expand_aliases;
|
||||
int echo_input_at_read;
|
||||
int need_here_doc;
|
||||
int here_doc_first_line;
|
||||
|
||||
/* structures affecting the parser */
|
||||
REDIRECT *redir_stack[HEREDOC_MAX];
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/* ``Have a little faith, there's magic in the night. You ain't a
|
||||
beauty, but, hey, you're alright.'' */
|
||||
|
||||
/* Copyright (C) 1987-2014 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1987-2015 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
|
||||
@@ -344,7 +344,7 @@ static WORD_LIST *glob_expand_word_list __P((WORD_LIST *, int));
|
||||
static WORD_LIST *brace_expand_word_list __P((WORD_LIST *, int));
|
||||
#endif
|
||||
#if defined (ARRAY_VARS)
|
||||
static int make_internal_declare __P((char *, char *));
|
||||
static int make_internal_declare __P((char *, char *, char *));
|
||||
#endif
|
||||
static WORD_LIST *shell_expand_word_list __P((WORD_LIST *, int));
|
||||
static WORD_LIST *expand_word_list_internal __P((WORD_LIST *, int));
|
||||
@@ -2855,6 +2855,12 @@ do_compound_assignment (name, value, flags)
|
||||
if (mklocal && variable_context)
|
||||
{
|
||||
v = find_variable (name);
|
||||
if (v && ((readonly_p (v) && (flags & ASS_FORCE) == 0) || noassign_p (v)))
|
||||
{
|
||||
if (v && readonly_p (v))
|
||||
err_readonly (name);
|
||||
return (v); /* XXX */
|
||||
}
|
||||
list = expand_compound_array_assignment (v, value, flags);
|
||||
if (mkassoc)
|
||||
v = make_local_assoc_variable (name);
|
||||
@@ -2869,6 +2875,12 @@ do_compound_assignment (name, value, flags)
|
||||
else if (mkglobal && variable_context)
|
||||
{
|
||||
v = find_global_variable (name);
|
||||
if (v && ((readonly_p (v) && (flags & ASS_FORCE) == 0) || noassign_p (v)))
|
||||
{
|
||||
if (v && readonly_p (v))
|
||||
err_readonly (name);
|
||||
return (v); /* XXX */
|
||||
}
|
||||
list = expand_compound_array_assignment (v, value, flags);
|
||||
if (v == 0 && mkassoc)
|
||||
v = make_new_assoc_variable (name);
|
||||
@@ -2884,7 +2896,15 @@ do_compound_assignment (name, value, flags)
|
||||
dispose_words (list);
|
||||
}
|
||||
else
|
||||
v = assign_array_from_string (name, value, flags);
|
||||
{
|
||||
v = assign_array_from_string (name, value, flags);
|
||||
if (v && ((readonly_p (v) && (flags & ASS_FORCE) == 0) || noassign_p (v)))
|
||||
{
|
||||
if (v && readonly_p (v))
|
||||
err_readonly (name);
|
||||
return (v); /* XXX */
|
||||
}
|
||||
}
|
||||
|
||||
return (v);
|
||||
}
|
||||
@@ -5553,6 +5573,12 @@ process_substitute (string, open_for_read_in_child)
|
||||
QUIT; /* catch any interrupts we got post-fork */
|
||||
setup_async_signals ();
|
||||
subshell_environment |= SUBSHELL_COMSUB|SUBSHELL_PROCSUB;
|
||||
|
||||
/* if we're expanding a redirection, we shouldn't have access to the
|
||||
temporary environment, but commands in the subshell should have
|
||||
access to their own temporary environment. */
|
||||
if (expanding_redir)
|
||||
flush_temporary_env ();
|
||||
}
|
||||
|
||||
#if defined (JOB_CONTROL)
|
||||
@@ -5659,7 +5685,10 @@ process_substitute (string, open_for_read_in_child)
|
||||
#endif /* HAVE_DEV_FD */
|
||||
|
||||
/* subshells shouldn't have this flag, which controls using the temporary
|
||||
environment for variable lookups. */
|
||||
environment for variable lookups. We have already flushed the temporary
|
||||
environment above in the case we're expanding a redirection, so processes
|
||||
executed by this command need to be able to set it independently of their
|
||||
parent. */
|
||||
expanding_redir = 0;
|
||||
|
||||
subshell_level++;
|
||||
@@ -10094,9 +10123,10 @@ brace_expand_word_list (tlist, eflags)
|
||||
/* Take WORD, a compound associative array assignment, and internally run
|
||||
'declare -A w', where W is the variable name portion of WORD. */
|
||||
static int
|
||||
make_internal_declare (word, option)
|
||||
make_internal_declare (word, option, cmd)
|
||||
char *word;
|
||||
char *option;
|
||||
char *cmd;
|
||||
{
|
||||
int t, r;
|
||||
WORD_LIST *wl;
|
||||
@@ -10122,12 +10152,16 @@ shell_expand_word_list (tlist, eflags)
|
||||
WORD_LIST *tlist;
|
||||
int eflags;
|
||||
{
|
||||
WORD_LIST *expanded, *orig_list, *new_list, *next, *temp_list;
|
||||
WORD_LIST *expanded, *orig_list, *new_list, *next, *temp_list, *wcmd;
|
||||
int expanded_something, has_dollar_at;
|
||||
char *temp_string;
|
||||
|
||||
/* We do tilde expansion all the time. This is what 1003.2 says. */
|
||||
new_list = (WORD_LIST *)NULL;
|
||||
for (wcmd = tlist; wcmd; wcmd = wcmd->next)
|
||||
if (wcmd->word->flags & W_ASSNBLTIN)
|
||||
break;
|
||||
|
||||
for (orig_list = tlist; tlist; tlist = next)
|
||||
{
|
||||
temp_string = tlist->word->word;
|
||||
@@ -10208,7 +10242,7 @@ shell_expand_word_list (tlist, eflags)
|
||||
opts[opti] = '\0';
|
||||
if (opti > 0)
|
||||
{
|
||||
t = make_internal_declare (tlist->word->word, opts);
|
||||
t = make_internal_declare (tlist->word->word, opts, wcmd ? wcmd->word->word : (char *)0);
|
||||
if (t != EXECUTION_SUCCESS)
|
||||
{
|
||||
last_command_exit_value = t;
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
after f1:declare -ar a=([0]="1")
|
||||
./attr.tests: line 4: a: readonly variable
|
||||
after f2:declare -ar a=([0]="1")
|
||||
./attr.tests: line 5: a: readonly variable
|
||||
after f3:declare -ar a=([0]="1")
|
||||
./attr.tests: line 6: readonly: a: readonly variable
|
||||
after f4:declare -ar a=([0]="1")
|
||||
after f2:declare -ar b=([0]="2")
|
||||
after f3:declare -ar c=([0]="(3)")
|
||||
after f4:declare -ar d=([0]="4")
|
||||
declare -r m="4"
|
||||
in func:declare -r n="4"
|
||||
declare -r n="4"
|
||||
./attr1.sub: line 13: p: readonly variable
|
||||
declare -r p="1"
|
||||
./attr1.sub: line 19: r: readonly variable
|
||||
declare -ar r=([0]="1")
|
||||
./attr1.sub: line 23: r: readonly variable
|
||||
declare -ar r=([0]="1")
|
||||
./attr1.sub: line 27: r: readonly variable
|
||||
declare -ar r=([0]="1")
|
||||
./attr1.sub: line 31: readonly: r: readonly variable
|
||||
declare -ar r=([0]="1")
|
||||
declare -ar x=([0]="4")
|
||||
in func:declare -ar y=([0]="4")
|
||||
declare -ar y=([0]="4")
|
||||
in func:declare -ar z=([0]="4")
|
||||
declare -ar z=([0]="4")
|
||||
in func:declare -ar y1=([0]="4")
|
||||
declare -ar y1=([0]="4")
|
||||
in func:declare -ar z1=([0]="4")
|
||||
declare -ar z1=([0]="4")
|
||||
declare -x p="4"
|
||||
declare -ax r=([0]="4")
|
||||
declare -ax r=([0]="(5)")
|
||||
declare -ax r=([0]="6")
|
||||
declare -ax r=([0]="7")
|
||||
@@ -0,0 +1,41 @@
|
||||
a=(outside)
|
||||
|
||||
f1() { readonly a=(1) ; }
|
||||
f2() { readonly -a a=(2) ; }
|
||||
f3() { readonly 'a=(3)' ; }
|
||||
f4() { readonly -a 'a=(4)' ; }
|
||||
|
||||
f1
|
||||
echo -n after f1:
|
||||
declare -p a
|
||||
f2
|
||||
echo -n after f2:
|
||||
declare -p a
|
||||
f3
|
||||
echo -n after f3:
|
||||
declare -p a
|
||||
f4
|
||||
echo -n after f4:
|
||||
declare -p a
|
||||
|
||||
b=(outside)
|
||||
c=(outside)
|
||||
d=(outside)
|
||||
|
||||
f2() { readonly -a b=(2) ; }
|
||||
f3() { readonly 'c=(3)' ; }
|
||||
f4() { readonly -a 'd=(4)' ; }
|
||||
|
||||
f2
|
||||
echo -n after f2:
|
||||
declare -p b
|
||||
f3
|
||||
echo -n after f3:
|
||||
declare -p c
|
||||
f4
|
||||
echo -n after f4:
|
||||
declare -p d
|
||||
|
||||
${THIS_SH} ./attr1.sub
|
||||
${THIS_SH} ./attr2.sub
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
m=1
|
||||
readonly m=4
|
||||
declare -p m
|
||||
|
||||
n=1
|
||||
f() { readonly n=4; echo -n in func: ; declare -p n ; }
|
||||
f
|
||||
declare -p n
|
||||
|
||||
p=1
|
||||
readonly p
|
||||
|
||||
readonly p=4
|
||||
declare -p p
|
||||
|
||||
r=(1)
|
||||
readonly r
|
||||
|
||||
f() { readonly r=(4) ; }
|
||||
f
|
||||
declare -p r
|
||||
|
||||
f() { readonly r='(5)' ; }
|
||||
f
|
||||
declare -p r
|
||||
|
||||
f() { readonly -a r=(6) ; }
|
||||
f
|
||||
declare -p r
|
||||
|
||||
f() { readonly -a r='(7)' ; }
|
||||
f
|
||||
declare -p r
|
||||
|
||||
x=(1)
|
||||
readonly x=(4)
|
||||
declare -p x
|
||||
|
||||
y=(1)
|
||||
f() { readonly y=(4); echo -n in func: ; declare -p y; }
|
||||
f
|
||||
declare -p y
|
||||
|
||||
z=(1)
|
||||
f() { readonly -a z=(4); echo -n in func: ; declare -p z; }
|
||||
f
|
||||
declare -p z
|
||||
|
||||
f() { readonly y1=(4); echo -n in func: ; declare -p y1; }
|
||||
f
|
||||
declare -p y1
|
||||
|
||||
f() { readonly -a z1=(4); echo -n in func: ; declare -p z1; }
|
||||
f
|
||||
declare -p z1
|
||||
@@ -0,0 +1,24 @@
|
||||
p=1
|
||||
export p
|
||||
|
||||
export p=4
|
||||
declare -p p
|
||||
|
||||
r=(1)
|
||||
export r
|
||||
|
||||
f() { export r=(4) ; }
|
||||
f
|
||||
declare -p r
|
||||
|
||||
f() { export r='(5)' ; }
|
||||
f
|
||||
declare -p r
|
||||
|
||||
f() { export -a r=(6) ; }
|
||||
f
|
||||
declare -p r
|
||||
|
||||
f() { export -a r='(7)' ; }
|
||||
f
|
||||
declare -p r
|
||||
@@ -41,6 +41,11 @@ found 2
|
||||
libc
|
||||
ok 42
|
||||
ok 43
|
||||
ok 1
|
||||
ok 2
|
||||
ok 3
|
||||
ok 4
|
||||
ok 5
|
||||
match 1
|
||||
match 2
|
||||
match 3
|
||||
|
||||
@@ -180,6 +180,17 @@ echo ${BASH_REMATCH[@]}
|
||||
if [[ "123abc" == *?(a)bc ]]; then echo ok 42; else echo bad 42; fi
|
||||
if [[ "123abc" == *?(a)bc ]]; then echo ok 43; else echo bad 43; fi
|
||||
|
||||
foo=""
|
||||
[[ bar == *"${foo,,}"* ]] && echo ok 1
|
||||
[[ bar == *${foo,,}* ]] && echo ok 2
|
||||
|
||||
shopt -s extquote
|
||||
bs='\'
|
||||
del=$'\177'
|
||||
[[ bar == *$bs"$del"* ]] || echo ok 3
|
||||
[[ "" == "$foo" ]] && echo ok 4
|
||||
[[ "$del" == "${foo,,}" ]] || echo ok 5
|
||||
|
||||
${THIS_SH} ./cond-regexp1.sub
|
||||
|
||||
${THIS_SH} ./cond-regexp2.sub
|
||||
|
||||
@@ -148,3 +148,5 @@ b
|
||||
c
|
||||
echo "#!/bin/bash" set -o posix
|
||||
#!/bin/bash set -o posix
|
||||
!!
|
||||
!!
|
||||
|
||||
@@ -9,3 +9,6 @@ set -o histexpand
|
||||
set -o posix
|
||||
|
||||
echo "#!/bin/bash" !!
|
||||
|
||||
echo '!!'
|
||||
echo "!!"
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
${THIS_SH} ./attr.tests 2>&1 | grep -v '^expect' > ${BASH_TSTOUT}
|
||||
diff ${BASH_TSTOUT} attr.right && rm -f ${BASH_TSTOUT}
|
||||
Reference in New Issue
Block a user