commit bash-20160909 snapshot

This commit is contained in:
Chet Ramey
2016-09-27 10:38:30 -04:00
parent 4d63a61942
commit 5606eb074d
22 changed files with 749 additions and 627 deletions
+31 -6
View File
@@ -1,3 +1,28 @@
This document details the changes between this version, bash-4.4-release, and
the previous version, bash-4.4-rc2.
1. Changes to Bash
a. Fixed a bug that could potentially result in a crash due to an integer
overflow.
b. Fixed a bug in where commands printed due to `set -x' could be incorrectly
quoted if being printed in contexts where they haven't yet been expanded.
c. Fixed several memory leaks.
d. Fixed a bug that could potentially cause the terminal attributes to be
set incorrectly by a command run from a programmable completion.
e. Fixed several potential buffer overflow issues in the word expansion code.
2. Changes to Readline
3. New Features in Bash
4. New Features in Readline
------------------------------------------------------------------------------
This document details the changes between this version, bash-4.4-rc2, and
the previous version, bash-4.4-beta2.
@@ -233,15 +258,15 @@ q. Fixed a bug that allowed subshells begun to execute process substitutions
r. Fixed a bug that could cause the shell to dump core when receiving a
SIGCHLD for which a trap has been set while running in posix mode.
s. Fixed a bug that caused bash to not restore BASH_ARGC, BASH_ARGV, BASH_SOURCE,
BASH_LINENO, and FUNCNAME if the shell received a SIGINT while reading
commands from a file while executing `.'.
s. Fixed a bug that caused bash to not restore BASH_ARGC, BASH_ARGV,
BASH_SOURCE, BASH_LINENO, and FUNCNAME if the shell received a SIGINT
while reading commands from a file while executing `.'.
t. Fixed a bug that caused the `-o history' option to have no effect when
supplied on the command line when starting a new shell.
u. Fixed a bug that caused history expansions occurring in command substitutions
to not be performed.
u. Fixed a bug that caused history expansions occurring in command
substitutions to not be performed.
v. Fixed a bug that caused `eval' run in a non-interactive shell to disable
history expansion for the remainder of the shell script, even if the script
@@ -592,7 +617,7 @@ dd. Fixed a bug that caused patterns containing `*' to match pathnames in cases
where slashes must be matched explicitly.
ee. Fixed a problem with patterns containing `:' in colon-separated variables
lik GLOBIGNORE.
like GLOBIGNORE.
ff. Fixed a bug that caused indirect variable expansion using indexed arrays to
always use index 0.
+31 -7
View File
@@ -1,3 +1,28 @@
This document details the changes between this version, bash-4.4-release, and
the previous version, bash-4.4-rc2.
1. Changes to Bash
a. Fixed a bug that could potentially result in a crash due to an integer
overflow.
b. Fixed a bug in where commands printed due to `set -x' could be incorrectly
quoted if being printed in contexts where they haven't yet been expanded.
c. Fixed several memory leaks.
d. Fixed a bug that could potentially cause the terminal attributes to be
set incorrectly by a command run from a programmable completion.
e. Fixed several potential buffer overflow issues in the word expansion code.
2. Changes to Readline
3. New Features in Bash
4. New Features in Readline
------------------------------------------------------------------------------
This document details the changes between this version, bash-4.4-rc2, and
the previous version, bash-4.4-beta2.
@@ -233,15 +258,15 @@ q. Fixed a bug that allowed subshells begun to execute process substitutions
r. Fixed a bug that could cause the shell to dump core when receiving a
SIGCHLD for which a trap has been set while running in posix mode.
s. Fixed a bug that caused bash to not restore BASH_ARGC, BASH_ARGV, BASH_SOURCE,
BASH_LINENO, and FUNCNAME if the shell received a SIGINT while reading
commands from a file while executing `.'.
s. Fixed a bug that caused bash to not restore BASH_ARGC, BASH_ARGV,
BASH_SOURCE, BASH_LINENO, and FUNCNAME if the shell received a SIGINT
while reading commands from a file while executing `.'.
t. Fixed a bug that caused the `-o history' option to have no effect when
supplied on the command line when starting a new shell.
u. Fixed a bug that caused history expansions occurring in command substitutions
to not be performed.
u. Fixed a bug that caused history expansions occurring in command
substitutions to not be performed.
v. Fixed a bug that caused `eval' run in a non-interactive shell to disable
history expansion for the remainder of the shell script, even if the script
@@ -592,7 +617,7 @@ dd. Fixed a bug that caused patterns containing `*' to match pathnames in cases
where slashes must be matched explicitly.
ee. Fixed a problem with patterns containing `:' in colon-separated variables
lik GLOBIGNORE.
like GLOBIGNORE.
ff. Fixed a bug that caused indirect variable expansion using indexed arrays to
always use index 0.
@@ -1004,4 +1029,3 @@ h. The insert-char function attempts to batch-insert all pending typeahead
i. rl_callback_sigcleanup: a new application function that can clean up and
unset any state set by readline's callback mode. Intended to be used
after a signal.
+19
View File
@@ -372,6 +372,25 @@ above.
characters in the replacement string as special; if it treats them as
special, then quote removal should remove them.
54. Bash-4.4 no longer considers a reference to ${a[@]} or ${a[*]}, where `a'
is an array without any elements set, to be a reference to an unset
variable. This means that such a reference will not cause the shell to
exit when the `-u' option is enabled.
55. Bash-4.4 allows double quotes to quote the history expansion character (!)
when in Posix mode, since Posix specifies the effects of double quotes.
56. Bash-4.4 does not inherit $PS4 from the environment if running as root.
57. Bash-4.4 doesn't allow a `break' or `continue' in a function to affect
loop execution in the calling context.
58. Bash-4.4 no longer expands tildes in $PATH elements when in Posix mode.
59. Bash-4.4 does not attempt to perform a compound array assignment if an
argument to `declare' or a similar builtin expands to a word that looks
like a compound array assignment (e.g. declare w=$x where x='(foo)').
Shell Compatibility Level
=========================
+19
View File
@@ -11677,3 +11677,22 @@ subst.c
constructs consuming the entire string with CHECK_STRING_OVERRUN ('`')
- skip_matched_pair: use CHECK_STRING_OVERRUN to make sure unterminated
embedded "`", $(, ${ don't cause out-of-bounds reads
[bash-4.4 frozen]
9/10
----
trap.c
- run_debug_trap: only give the terminal to pipeline_pgrp if
subshell_environment doesn't include SUBSHELL_ASYNC|SUBSHELL_PIPE.
Fixes bug reported by Matthew Giassa <matthew@giassa.net>
execute_cmd.c
- execute_simple_command: if user_subshell is set, check and set
SUBSHELL_ASYNC if asynchronous is set as well as setting
SUBSHELL_PAREN
parse.y
- parse_comsub: when parsing a here-document delimiter, make sure we
don't try to use `nestret' after freeing it. Fixes bug reported by
Franco Costantini <franco.costantini.20@gmail.com>
Vendored
+11 -11
View File
@@ -1,7 +1,7 @@
#! /bin/sh
# From configure.ac for Bash 4.4, version 4.081.
# From configure.ac for Bash 4.4, version 4.082.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for bash 4.4-releng.
# Generated by GNU Autoconf 2.69 for bash 4.4-maint.
#
# Report bugs to <bug-bash@gnu.org>.
#
@@ -581,8 +581,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='bash'
PACKAGE_TARNAME='bash'
PACKAGE_VERSION='4.4-releng'
PACKAGE_STRING='bash 4.4-releng'
PACKAGE_VERSION='4.4-maint'
PACKAGE_STRING='bash 4.4-maint'
PACKAGE_BUGREPORT='bug-bash@gnu.org'
PACKAGE_URL=''
@@ -1393,7 +1393,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures bash 4.4-releng to adapt to many kinds of systems.
\`configure' configures bash 4.4-maint to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1458,7 +1458,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of bash 4.4-releng:";;
short | recursive ) echo "Configuration of bash 4.4-maint:";;
esac
cat <<\_ACEOF
@@ -1651,7 +1651,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
bash configure 4.4-releng
bash configure 4.4-maint
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2360,7 +2360,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by bash $as_me 4.4-releng, which was
It was created by bash $as_me 4.4-maint, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2754,7 +2754,7 @@ ac_config_headers="$ac_config_headers config.h"
BASHVERS=4.4
RELSTATUS=releng
RELSTATUS=maint
case "$RELSTATUS" in
alp*|bet*|dev*|rc*|releng*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -16705,7 +16705,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by bash $as_me 4.4-releng, which was
This file was extended by bash $as_me 4.4-maint, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16771,7 +16771,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
bash config.status 4.4-releng
bash config.status 4.4-maint
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
+2 -2
View File
@@ -21,10 +21,10 @@ 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 4.4, version 4.081])dnl
AC_REVISION([for Bash 4.4, version 4.082])dnl
define(bashvers, 4.4)
define(relstatus, releng)
define(relstatus, maint)
AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
+180 -173
View File
@@ -2,9 +2,9 @@ This is bash.info, produced by makeinfo version 6.1 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 4.4, 26 August 2016).
Bash shell (version 4.4, 7 September 2016).
This is Edition 4.4, last updated 26 August 2016, of 'The GNU Bash
This is Edition 4.4, last updated 7 September 2016, of 'The GNU Bash
Reference Manual', for 'Bash', Version 4.4.
Copyright (C) 1988-2016 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 4.4, 26 August 2016). The Bash home page is
Bash shell (version 4.4, 7 September 2016). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 4.4, last updated 26 August 2016, of 'The GNU Bash
This is Edition 4.4, last updated 7 September 2016, of 'The GNU Bash
Reference Manual', for 'Bash', Version 4.4.
Bash contains features that appear in other popular shells, and some
@@ -6420,158 +6420,165 @@ startup files.
14. POSIX special builtins are found before shell functions during
command lookup.
15. Literal tildes that appear as the first character in elements of
15. When printing shell function definitions (e.g., by 'type'), Bash
does not print the 'function' keyword.
16. Literal tildes that appear as the first character in elements of
the 'PATH' variable are not expanded as described above under *note
Tilde Expansion::.
16. The 'time' reserved word may be used by itself as a command. When
17. The 'time' reserved word may be used by itself as a command. When
used in this way, it displays timing statistics for the shell and
its completed children. The 'TIMEFORMAT' variable controls the
format of the timing information.
17. When parsing and expanding a ${...} expansion that appears within
18. When parsing and expanding a ${...} expansion that appears within
double quotes, single quotes are no longer special and cannot be
used to quote a closing brace or other special character, unless
the operator is one of those defined to perform pattern removal.
In this case, they do not have to appear as matched pairs.
18. The parser does not recognize 'time' as a reserved word if the
19. The parser does not recognize 'time' as a reserved word if the
next token begins with a '-'.
19. The '!' character does not introduce history expansion within a
20. The '!' character does not introduce history expansion within a
double-quoted string, even if the 'histexpand' option is enabled.
20. If a POSIX special builtin returns an error status, a
21. If a POSIX special builtin returns an error status, a
non-interactive shell exits. The fatal errors are those listed in
the POSIX standard, and include things like passing incorrect
options, redirection errors, variable assignment errors for
assignments preceding the command name, and so on.
21. A non-interactive shell exits with an error status if a variable
22. A non-interactive shell exits with an error status if a variable
assignment error occurs when no command name follows the assignment
statements. A variable assignment error occurs, for example, when
trying to assign a value to a readonly variable.
22. A non-interactive shell exits with an error status if a variable
23. A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a
special builtin, but not with any other simple command.
23. A non-interactive shell exits with an error status if the
24. A non-interactive shell exits with an error status if the
iteration variable in a 'for' statement or the selection variable
in a 'select' statement is a readonly variable.
24. Non-interactive shells exit if FILENAME in '.' FILENAME is not
25. Non-interactive shells exit if FILENAME in '.' FILENAME is not
found.
25. Non-interactive shells exit if a syntax error in an arithmetic
26. Non-interactive shells exit if a syntax error in an arithmetic
expansion results in an invalid expression.
26. Non-interactive shells exit on word expansion errors.
27. Non-interactive shells exit if a parameter expansion error occurs.
27. Non-interactive shells exit if there is a syntax error in a script
28. Non-interactive shells exit if there is a syntax error in a script
read with the '.' or 'source' builtins, or in a string processed by
the 'eval' builtin.
28. Process substitution is not available.
29. Process substitution is not available.
29. While variable indirection is available, it may not be applied to
30. While variable indirection is available, it may not be applied to
the '#' and '?' special parameters.
30. Assignment statements preceding POSIX special builtins persist in
31. When expanding the '*' special parameter in a pattern context
where the expansion is double-quoted does not treat the '$*' as if
it were double-quoted.
32. Assignment statements preceding POSIX special builtins persist in
the shell environment after the builtin completes.
31. Assignment statements preceding shell function calls persist in
33. Assignment statements preceding shell function calls persist in
the shell environment after the function returns, as if a POSIX
special builtin command had been executed.
32. The 'command' builtin does not prevent builtins that take
34. The 'command' builtin does not prevent builtins that take
assignment statements as arguments from expanding them as
assignment statements; when not in POSIX mode, assignment builtins
lose their assignment statement expansion properties when preceded
by 'command'.
33. The 'bg' builtin uses the required format to describe each job
35. The 'bg' builtin uses the required format to describe each job
placed in the background, which does not include an indication of
whether the job is the current or previous job.
34. The output of 'kill -l' prints all the signal names on a single
36. The output of 'kill -l' prints all the signal names on a single
line, separated by spaces, without the 'SIG' prefix.
35. The 'kill' builtin does not accept signal names with a 'SIG'
37. The 'kill' builtin does not accept signal names with a 'SIG'
prefix.
36. The 'export' and 'readonly' builtin commands display their output
38. The 'export' and 'readonly' builtin commands display their output
in the format required by POSIX.
37. The 'trap' builtin displays signal names without the leading
39. The 'trap' builtin displays signal names without the leading
'SIG'.
38. The 'trap' builtin doesn't check the first argument for a possible
40. The 'trap' builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
disposition if it is, unless that argument consists solely of
digits and is a valid signal number. If users want to reset the
handler for a given signal to the original disposition, they should
use '-' as the first argument.
39. The '.' and 'source' builtins do not search the current directory
41. The '.' and 'source' builtins do not search the current directory
for the filename argument if it is not found by searching 'PATH'.
40. Enabling POSIX mode has the effect of setting the
42. Enabling POSIX mode has the effect of setting the
'inherit_errexit' option, so subshells spawned to execute command
substitutions inherit the value of the '-e' option from the parent
shell. When the 'inherit_errexit' option is not enabled, Bash
clears the '-e' option in such subshells.
41. When the 'alias' builtin displays alias definitions, it does not
43. When the 'alias' builtin displays alias definitions, it does not
display them with a leading 'alias ' unless the '-p' option is
supplied.
42. When the 'set' builtin is invoked without options, it does not
44. When the 'set' builtin is invoked without options, it does not
display shell function names and definitions.
43. When the 'set' builtin is invoked without options, it displays
45. When the 'set' builtin is invoked without options, it displays
variable values without quotes, unless they contain shell
metacharacters, even if the result contains nonprinting characters.
44. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
46. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
constructed from '$PWD' and the directory name supplied as an
argument does not refer to an existing directory, 'cd' will fail
instead of falling back to PHYSICAL mode.
45. The 'pwd' builtin verifies that the value it prints is the same as
47. The 'pwd' builtin verifies that the value it prints is the same as
the current directory, even if it is not asked to check the file
system with the '-P' option.
46. When listing the history, the 'fc' builtin does not include an
48. When listing the history, the 'fc' builtin does not include an
indication of whether or not a history entry has been modified.
47. The default editor used by 'fc' is 'ed'.
49. The default editor used by 'fc' is 'ed'.
48. The 'type' and 'command' builtins will not report a non-executable
50. The 'type' and 'command' builtins will not report a non-executable
file as having been found, though the shell will attempt to execute
such a file if it is the only so-named file found in '$PATH'.
49. The 'vi' editing mode will invoke the 'vi' editor directly when
51. The 'vi' editing mode will invoke the 'vi' editor directly when
the 'v' command is run, instead of checking '$VISUAL' and
'$EDITOR'.
50. When the 'xpg_echo' option is enabled, Bash does not attempt to
52. When the 'xpg_echo' option is enabled, Bash does not attempt to
interpret any arguments to 'echo' as options. Each argument is
displayed, after escape characters are converted.
51. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
53. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
and '-f' options.
52. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
54. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
interrupt the 'wait' builtin and cause it to return immediately.
The trap command is run once for each child that exits.
53. The 'read' builtin may be interrupted by a signal for which a trap
55. The 'read' builtin may be interrupted by a signal for which a trap
has been set. If Bash receives a trapped signal while executing
'read', the trap handler executes and 'read' returns an exit status
greater than 128.
54. Bash removes an exited background process's status from the list
56. Bash removes an exited background process's status from the list
of such statuses after the 'wait' builtin is used to obtain it.
There is other POSIX behavior that Bash does not implement by default
@@ -11344,134 +11351,134 @@ D.5 Concept Index

Tag Table:
Node: Top893
Node: Introduction2809
Node: What is Bash?3025
Node: What is a shell?4139
Node: Definitions6677
Node: Basic Shell Features9628
Node: Shell Syntax10847
Node: Shell Operation11873
Node: Quoting13166
Node: Escape Character14466
Node: Single Quotes14951
Node: Double Quotes15299
Node: ANSI-C Quoting16577
Node: Locale Translation17830
Node: Comments18726
Node: Shell Commands19344
Node: Simple Commands20216
Node: Pipelines20847
Node: Lists23590
Node: Compound Commands25319
Node: Looping Constructs26322
Node: Conditional Constructs28785
Node: Command Grouping39707
Node: Coprocesses41186
Node: GNU Parallel43018
Node: Shell Functions46991
Node: Shell Parameters52197
Node: Positional Parameters56610
Node: Special Parameters57510
Node: Shell Expansions60847
Node: Brace Expansion62941
Node: Tilde Expansion65722
Node: Shell Parameter Expansion68070
Node: Command Substitution82202
Node: Arithmetic Expansion83557
Node: Process Substitution84489
Node: Word Splitting85609
Node: Filename Expansion87553
Node: Pattern Matching89837
Node: Quote Removal93535
Node: Redirections93830
Node: Executing Commands103250
Node: Simple Command Expansion103920
Node: Command Search and Execution105850
Node: Command Execution Environment108186
Node: Environment111170
Node: Exit Status112829
Node: Signals114499
Node: Shell Scripts116466
Node: Shell Builtin Commands118981
Node: Bourne Shell Builtins121015
Node: Bash Builtins141615
Node: Modifying Shell Behavior170260
Node: The Set Builtin170605
Node: The Shopt Builtin181018
Node: Special Builtins196817
Node: Shell Variables197796
Node: Bourne Shell Variables198233
Node: Bash Variables200264
Node: Bash Features228644
Node: Invoking Bash229543
Node: Bash Startup Files235492
Node: Interactive Shells240595
Node: What is an Interactive Shell?241005
Node: Is this Shell Interactive?241654
Node: Interactive Shell Behavior242469
Node: Bash Conditional Expressions245844
Node: Shell Arithmetic250084
Node: Aliases252901
Node: Arrays255449
Node: The Directory Stack260533
Node: Directory Stack Builtins261317
Node: Controlling the Prompt264285
Node: The Restricted Shell267031
Node: Bash POSIX Mode268856
Node: Job Control278909
Node: Job Control Basics279369
Node: Job Control Builtins284088
Node: Job Control Variables288618
Node: Command Line Editing289774
Node: Introduction and Notation291445
Node: Readline Interaction293068
Node: Readline Bare Essentials294259
Node: Readline Movement Commands296042
Node: Readline Killing Commands297002
Node: Readline Arguments298920
Node: Searching299964
Node: Readline Init File302150
Node: Readline Init File Syntax303297
Node: Conditional Init Constructs323484
Node: Sample Init File326009
Node: Bindable Readline Commands329126
Node: Commands For Moving330330
Node: Commands For History331473
Node: Commands For Text335762
Node: Commands For Killing339151
Node: Numeric Arguments341632
Node: Commands For Completion342771
Node: Keyboard Macros346962
Node: Miscellaneous Commands347649
Node: Readline vi Mode353453
Node: Programmable Completion354360
Node: Programmable Completion Builtins361821
Node: A Programmable Completion Example371707
Node: Using History Interactively376959
Node: Bash History Facilities377643
Node: Bash History Builtins380644
Node: History Interaction384641
Node: Event Designators387605
Node: Word Designators388824
Node: Modifiers390461
Node: Installing Bash391863
Node: Basic Installation393000
Node: Compilers and Options395691
Node: Compiling For Multiple Architectures396432
Node: Installation Names398095
Node: Specifying the System Type398913
Node: Sharing Defaults399629
Node: Operation Controls400302
Node: Optional Features401260
Node: Reporting Bugs411517
Node: Major Differences From The Bourne Shell412711
Node: GNU Free Documentation License429563
Node: Indexes454740
Node: Builtin Index455194
Node: Reserved Word Index462021
Node: Variable Index464469
Node: Function Index479928
Node: Concept Index493085
Node: Top897
Node: Introduction2817
Node: What is Bash?3033
Node: What is a shell?4147
Node: Definitions6685
Node: Basic Shell Features9636
Node: Shell Syntax10855
Node: Shell Operation11881
Node: Quoting13174
Node: Escape Character14474
Node: Single Quotes14959
Node: Double Quotes15307
Node: ANSI-C Quoting16585
Node: Locale Translation17838
Node: Comments18734
Node: Shell Commands19352
Node: Simple Commands20224
Node: Pipelines20855
Node: Lists23598
Node: Compound Commands25327
Node: Looping Constructs26330
Node: Conditional Constructs28793
Node: Command Grouping39715
Node: Coprocesses41194
Node: GNU Parallel43026
Node: Shell Functions46999
Node: Shell Parameters52205
Node: Positional Parameters56618
Node: Special Parameters57518
Node: Shell Expansions60855
Node: Brace Expansion62949
Node: Tilde Expansion65730
Node: Shell Parameter Expansion68078
Node: Command Substitution82210
Node: Arithmetic Expansion83565
Node: Process Substitution84497
Node: Word Splitting85617
Node: Filename Expansion87561
Node: Pattern Matching89845
Node: Quote Removal93543
Node: Redirections93838
Node: Executing Commands103258
Node: Simple Command Expansion103928
Node: Command Search and Execution105858
Node: Command Execution Environment108194
Node: Environment111178
Node: Exit Status112837
Node: Signals114507
Node: Shell Scripts116474
Node: Shell Builtin Commands118989
Node: Bourne Shell Builtins121023
Node: Bash Builtins141623
Node: Modifying Shell Behavior170268
Node: The Set Builtin170613
Node: The Shopt Builtin181026
Node: Special Builtins196825
Node: Shell Variables197804
Node: Bourne Shell Variables198241
Node: Bash Variables200272
Node: Bash Features228652
Node: Invoking Bash229551
Node: Bash Startup Files235500
Node: Interactive Shells240603
Node: What is an Interactive Shell?241013
Node: Is this Shell Interactive?241662
Node: Interactive Shell Behavior242477
Node: Bash Conditional Expressions245852
Node: Shell Arithmetic250092
Node: Aliases252909
Node: Arrays255457
Node: The Directory Stack260541
Node: Directory Stack Builtins261325
Node: Controlling the Prompt264293
Node: The Restricted Shell267039
Node: Bash POSIX Mode268864
Node: Job Control279215
Node: Job Control Basics279675
Node: Job Control Builtins284394
Node: Job Control Variables288924
Node: Command Line Editing290080
Node: Introduction and Notation291751
Node: Readline Interaction293374
Node: Readline Bare Essentials294565
Node: Readline Movement Commands296348
Node: Readline Killing Commands297308
Node: Readline Arguments299226
Node: Searching300270
Node: Readline Init File302456
Node: Readline Init File Syntax303603
Node: Conditional Init Constructs323790
Node: Sample Init File326315
Node: Bindable Readline Commands329432
Node: Commands For Moving330636
Node: Commands For History331779
Node: Commands For Text336068
Node: Commands For Killing339457
Node: Numeric Arguments341938
Node: Commands For Completion343077
Node: Keyboard Macros347268
Node: Miscellaneous Commands347955
Node: Readline vi Mode353759
Node: Programmable Completion354666
Node: Programmable Completion Builtins362127
Node: A Programmable Completion Example372013
Node: Using History Interactively377265
Node: Bash History Facilities377949
Node: Bash History Builtins380950
Node: History Interaction384947
Node: Event Designators387911
Node: Word Designators389130
Node: Modifiers390767
Node: Installing Bash392169
Node: Basic Installation393306
Node: Compilers and Options395997
Node: Compiling For Multiple Architectures396738
Node: Installation Names398401
Node: Specifying the System Type399219
Node: Sharing Defaults399935
Node: Operation Controls400608
Node: Optional Features401566
Node: Reporting Bugs411823
Node: Major Differences From The Bourne Shell413017
Node: GNU Free Documentation License429869
Node: Indexes455046
Node: Builtin Index455500
Node: Reserved Word Index462327
Node: Variable Index464775
Node: Function Index480234
Node: Concept Index493391

End Tag Table
BIN
View File
Binary file not shown.
+12 -5
View File
@@ -1,9 +1,9 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This text is a brief description of the features that are present in
the Bash shell (version 4.4, 26 August 2016).
the Bash shell (version 4.4, 7 September 2016).
This is Edition 4.4, last updated 26 August 2016,
This is Edition 4.4, last updated 7 September 2016,
of The GNU Bash Reference Manual,
for Bash, Version 4.4.
@@ -284,10 +284,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
<h1 class="top">Bash Features</h1>
<p>This text is a brief description of the features that are present in
the Bash shell (version 4.4, 26 August 2016).
the Bash shell (version 4.4, 7 September 2016).
The Bash home page is <a href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
</p>
<p>This is Edition 4.4, last updated 26 August 2016,
<p>This is Edition 4.4, last updated 7 September 2016,
of <cite>The GNU Bash Reference Manual</cite>,
for <code>Bash</code>, Version 4.4.
</p>
@@ -8787,6 +8787,9 @@ builtins.
</li><li> <small>POSIX</small> special builtins are found before shell functions
during command lookup.
</li><li> When printing shell function definitions (e.g., by <code>type</code>), Bash does
not print the <code>function</code> keyword.
</li><li> Literal tildes that appear as the first character in elements of
the <code>PATH</code> variable are not expanded as described above
under <a href="#Tilde-Expansion">Tilde Expansion</a>.
@@ -8834,7 +8837,7 @@ is not found.
</li><li> Non-interactive shells exit if a syntax error in an arithmetic expansion
results in an invalid expression.
</li><li> Non-interactive shells exit on word expansion errors.
</li><li> Non-interactive shells exit if a parameter expansion error occurs.
</li><li> Non-interactive shells exit if there is a syntax error in a script read
with the <code>.</code> or <code>source</code> builtins, or in a string processed by
@@ -8845,6 +8848,10 @@ the <code>eval</code> builtin.
</li><li> While variable indirection is available, it may not be applied to the
&lsquo;<samp>#</samp>&rsquo; and &lsquo;<samp>?</samp>&rsquo; special parameters.
</li><li> When expanding the &lsquo;<samp>*</samp>&rsquo; special parameter in a pattern context where the
expansion is double-quoted does not treat the <code>$*</code> as if it were
double-quoted.
</li><li> Assignment statements preceding <small>POSIX</small> special builtins
persist in the shell environment after the builtin completes.
+180 -173
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.1 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 4.4, 26 August 2016).
Bash shell (version 4.4, 7 September 2016).
This is Edition 4.4, last updated 26 August 2016, of 'The GNU Bash
This is Edition 4.4, last updated 7 September 2016, of 'The GNU Bash
Reference Manual', for 'Bash', Version 4.4.
Copyright (C) 1988-2016 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 4.4, 26 August 2016). The Bash home page is
Bash shell (version 4.4, 7 September 2016). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 4.4, last updated 26 August 2016, of 'The GNU Bash
This is Edition 4.4, last updated 7 September 2016, of 'The GNU Bash
Reference Manual', for 'Bash', Version 4.4.
Bash contains features that appear in other popular shells, and some
@@ -6420,158 +6420,165 @@ startup files.
14. POSIX special builtins are found before shell functions during
command lookup.
15. Literal tildes that appear as the first character in elements of
15. When printing shell function definitions (e.g., by 'type'), Bash
does not print the 'function' keyword.
16. Literal tildes that appear as the first character in elements of
the 'PATH' variable are not expanded as described above under *note
Tilde Expansion::.
16. The 'time' reserved word may be used by itself as a command. When
17. The 'time' reserved word may be used by itself as a command. When
used in this way, it displays timing statistics for the shell and
its completed children. The 'TIMEFORMAT' variable controls the
format of the timing information.
17. When parsing and expanding a ${...} expansion that appears within
18. When parsing and expanding a ${...} expansion that appears within
double quotes, single quotes are no longer special and cannot be
used to quote a closing brace or other special character, unless
the operator is one of those defined to perform pattern removal.
In this case, they do not have to appear as matched pairs.
18. The parser does not recognize 'time' as a reserved word if the
19. The parser does not recognize 'time' as a reserved word if the
next token begins with a '-'.
19. The '!' character does not introduce history expansion within a
20. The '!' character does not introduce history expansion within a
double-quoted string, even if the 'histexpand' option is enabled.
20. If a POSIX special builtin returns an error status, a
21. If a POSIX special builtin returns an error status, a
non-interactive shell exits. The fatal errors are those listed in
the POSIX standard, and include things like passing incorrect
options, redirection errors, variable assignment errors for
assignments preceding the command name, and so on.
21. A non-interactive shell exits with an error status if a variable
22. A non-interactive shell exits with an error status if a variable
assignment error occurs when no command name follows the assignment
statements. A variable assignment error occurs, for example, when
trying to assign a value to a readonly variable.
22. A non-interactive shell exits with an error status if a variable
23. A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a
special builtin, but not with any other simple command.
23. A non-interactive shell exits with an error status if the
24. A non-interactive shell exits with an error status if the
iteration variable in a 'for' statement or the selection variable
in a 'select' statement is a readonly variable.
24. Non-interactive shells exit if FILENAME in '.' FILENAME is not
25. Non-interactive shells exit if FILENAME in '.' FILENAME is not
found.
25. Non-interactive shells exit if a syntax error in an arithmetic
26. Non-interactive shells exit if a syntax error in an arithmetic
expansion results in an invalid expression.
26. Non-interactive shells exit on word expansion errors.
27. Non-interactive shells exit if a parameter expansion error occurs.
27. Non-interactive shells exit if there is a syntax error in a script
28. Non-interactive shells exit if there is a syntax error in a script
read with the '.' or 'source' builtins, or in a string processed by
the 'eval' builtin.
28. Process substitution is not available.
29. Process substitution is not available.
29. While variable indirection is available, it may not be applied to
30. While variable indirection is available, it may not be applied to
the '#' and '?' special parameters.
30. Assignment statements preceding POSIX special builtins persist in
31. When expanding the '*' special parameter in a pattern context
where the expansion is double-quoted does not treat the '$*' as if
it were double-quoted.
32. Assignment statements preceding POSIX special builtins persist in
the shell environment after the builtin completes.
31. Assignment statements preceding shell function calls persist in
33. Assignment statements preceding shell function calls persist in
the shell environment after the function returns, as if a POSIX
special builtin command had been executed.
32. The 'command' builtin does not prevent builtins that take
34. The 'command' builtin does not prevent builtins that take
assignment statements as arguments from expanding them as
assignment statements; when not in POSIX mode, assignment builtins
lose their assignment statement expansion properties when preceded
by 'command'.
33. The 'bg' builtin uses the required format to describe each job
35. The 'bg' builtin uses the required format to describe each job
placed in the background, which does not include an indication of
whether the job is the current or previous job.
34. The output of 'kill -l' prints all the signal names on a single
36. The output of 'kill -l' prints all the signal names on a single
line, separated by spaces, without the 'SIG' prefix.
35. The 'kill' builtin does not accept signal names with a 'SIG'
37. The 'kill' builtin does not accept signal names with a 'SIG'
prefix.
36. The 'export' and 'readonly' builtin commands display their output
38. The 'export' and 'readonly' builtin commands display their output
in the format required by POSIX.
37. The 'trap' builtin displays signal names without the leading
39. The 'trap' builtin displays signal names without the leading
'SIG'.
38. The 'trap' builtin doesn't check the first argument for a possible
40. The 'trap' builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
disposition if it is, unless that argument consists solely of
digits and is a valid signal number. If users want to reset the
handler for a given signal to the original disposition, they should
use '-' as the first argument.
39. The '.' and 'source' builtins do not search the current directory
41. The '.' and 'source' builtins do not search the current directory
for the filename argument if it is not found by searching 'PATH'.
40. Enabling POSIX mode has the effect of setting the
42. Enabling POSIX mode has the effect of setting the
'inherit_errexit' option, so subshells spawned to execute command
substitutions inherit the value of the '-e' option from the parent
shell. When the 'inherit_errexit' option is not enabled, Bash
clears the '-e' option in such subshells.
41. When the 'alias' builtin displays alias definitions, it does not
43. When the 'alias' builtin displays alias definitions, it does not
display them with a leading 'alias ' unless the '-p' option is
supplied.
42. When the 'set' builtin is invoked without options, it does not
44. When the 'set' builtin is invoked without options, it does not
display shell function names and definitions.
43. When the 'set' builtin is invoked without options, it displays
45. When the 'set' builtin is invoked without options, it displays
variable values without quotes, unless they contain shell
metacharacters, even if the result contains nonprinting characters.
44. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
46. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
constructed from '$PWD' and the directory name supplied as an
argument does not refer to an existing directory, 'cd' will fail
instead of falling back to PHYSICAL mode.
45. The 'pwd' builtin verifies that the value it prints is the same as
47. The 'pwd' builtin verifies that the value it prints is the same as
the current directory, even if it is not asked to check the file
system with the '-P' option.
46. When listing the history, the 'fc' builtin does not include an
48. When listing the history, the 'fc' builtin does not include an
indication of whether or not a history entry has been modified.
47. The default editor used by 'fc' is 'ed'.
49. The default editor used by 'fc' is 'ed'.
48. The 'type' and 'command' builtins will not report a non-executable
50. The 'type' and 'command' builtins will not report a non-executable
file as having been found, though the shell will attempt to execute
such a file if it is the only so-named file found in '$PATH'.
49. The 'vi' editing mode will invoke the 'vi' editor directly when
51. The 'vi' editing mode will invoke the 'vi' editor directly when
the 'v' command is run, instead of checking '$VISUAL' and
'$EDITOR'.
50. When the 'xpg_echo' option is enabled, Bash does not attempt to
52. When the 'xpg_echo' option is enabled, Bash does not attempt to
interpret any arguments to 'echo' as options. Each argument is
displayed, after escape characters are converted.
51. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
53. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
and '-f' options.
52. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
54. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
interrupt the 'wait' builtin and cause it to return immediately.
The trap command is run once for each child that exits.
53. The 'read' builtin may be interrupted by a signal for which a trap
55. The 'read' builtin may be interrupted by a signal for which a trap
has been set. If Bash receives a trapped signal while executing
'read', the trap handler executes and 'read' returns an exit status
greater than 128.
54. Bash removes an exited background process's status from the list
56. Bash removes an exited background process's status from the list
of such statuses after the 'wait' builtin is used to obtain it.
There is other POSIX behavior that Bash does not implement by default
@@ -11344,134 +11351,134 @@ D.5 Concept Index

Tag Table:
Node: Top893
Node: Introduction2809
Node: What is Bash?3025
Node: What is a shell?4139
Node: Definitions6677
Node: Basic Shell Features9628
Node: Shell Syntax10847
Node: Shell Operation11873
Node: Quoting13166
Node: Escape Character14466
Node: Single Quotes14951
Node: Double Quotes15299
Node: ANSI-C Quoting16577
Node: Locale Translation17830
Node: Comments18726
Node: Shell Commands19344
Node: Simple Commands20216
Node: Pipelines20847
Node: Lists23590
Node: Compound Commands25319
Node: Looping Constructs26322
Node: Conditional Constructs28785
Node: Command Grouping39707
Node: Coprocesses41186
Node: GNU Parallel43018
Node: Shell Functions46991
Node: Shell Parameters52197
Node: Positional Parameters56610
Node: Special Parameters57510
Node: Shell Expansions60847
Node: Brace Expansion62941
Node: Tilde Expansion65722
Node: Shell Parameter Expansion68070
Node: Command Substitution82202
Node: Arithmetic Expansion83557
Node: Process Substitution84489
Node: Word Splitting85609
Node: Filename Expansion87553
Node: Pattern Matching89837
Node: Quote Removal93535
Node: Redirections93830
Node: Executing Commands103250
Node: Simple Command Expansion103920
Node: Command Search and Execution105850
Node: Command Execution Environment108186
Node: Environment111170
Node: Exit Status112829
Node: Signals114499
Node: Shell Scripts116466
Node: Shell Builtin Commands118981
Node: Bourne Shell Builtins121015
Node: Bash Builtins141615
Node: Modifying Shell Behavior170260
Node: The Set Builtin170605
Node: The Shopt Builtin181018
Node: Special Builtins196817
Node: Shell Variables197796
Node: Bourne Shell Variables198233
Node: Bash Variables200264
Node: Bash Features228644
Node: Invoking Bash229543
Node: Bash Startup Files235492
Node: Interactive Shells240595
Node: What is an Interactive Shell?241005
Node: Is this Shell Interactive?241654
Node: Interactive Shell Behavior242469
Node: Bash Conditional Expressions245844
Node: Shell Arithmetic250084
Node: Aliases252901
Node: Arrays255449
Node: The Directory Stack260533
Node: Directory Stack Builtins261317
Node: Controlling the Prompt264285
Node: The Restricted Shell267031
Node: Bash POSIX Mode268856
Node: Job Control278909
Node: Job Control Basics279369
Node: Job Control Builtins284088
Node: Job Control Variables288618
Node: Command Line Editing289774
Node: Introduction and Notation291445
Node: Readline Interaction293068
Node: Readline Bare Essentials294259
Node: Readline Movement Commands296042
Node: Readline Killing Commands297002
Node: Readline Arguments298920
Node: Searching299964
Node: Readline Init File302150
Node: Readline Init File Syntax303297
Node: Conditional Init Constructs323484
Node: Sample Init File326009
Node: Bindable Readline Commands329126
Node: Commands For Moving330330
Node: Commands For History331473
Node: Commands For Text335762
Node: Commands For Killing339151
Node: Numeric Arguments341632
Node: Commands For Completion342771
Node: Keyboard Macros346962
Node: Miscellaneous Commands347649
Node: Readline vi Mode353453
Node: Programmable Completion354360
Node: Programmable Completion Builtins361821
Node: A Programmable Completion Example371707
Node: Using History Interactively376959
Node: Bash History Facilities377643
Node: Bash History Builtins380644
Node: History Interaction384641
Node: Event Designators387605
Node: Word Designators388824
Node: Modifiers390461
Node: Installing Bash391863
Node: Basic Installation393000
Node: Compilers and Options395691
Node: Compiling For Multiple Architectures396432
Node: Installation Names398095
Node: Specifying the System Type398913
Node: Sharing Defaults399629
Node: Operation Controls400302
Node: Optional Features401260
Node: Reporting Bugs411517
Node: Major Differences From The Bourne Shell412711
Node: GNU Free Documentation License429563
Node: Indexes454740
Node: Builtin Index455194
Node: Reserved Word Index462021
Node: Variable Index464469
Node: Function Index479928
Node: Concept Index493085
Node: Top897
Node: Introduction2817
Node: What is Bash?3033
Node: What is a shell?4147
Node: Definitions6685
Node: Basic Shell Features9636
Node: Shell Syntax10855
Node: Shell Operation11881
Node: Quoting13174
Node: Escape Character14474
Node: Single Quotes14959
Node: Double Quotes15307
Node: ANSI-C Quoting16585
Node: Locale Translation17838
Node: Comments18734
Node: Shell Commands19352
Node: Simple Commands20224
Node: Pipelines20855
Node: Lists23598
Node: Compound Commands25327
Node: Looping Constructs26330
Node: Conditional Constructs28793
Node: Command Grouping39715
Node: Coprocesses41194
Node: GNU Parallel43026
Node: Shell Functions46999
Node: Shell Parameters52205
Node: Positional Parameters56618
Node: Special Parameters57518
Node: Shell Expansions60855
Node: Brace Expansion62949
Node: Tilde Expansion65730
Node: Shell Parameter Expansion68078
Node: Command Substitution82210
Node: Arithmetic Expansion83565
Node: Process Substitution84497
Node: Word Splitting85617
Node: Filename Expansion87561
Node: Pattern Matching89845
Node: Quote Removal93543
Node: Redirections93838
Node: Executing Commands103258
Node: Simple Command Expansion103928
Node: Command Search and Execution105858
Node: Command Execution Environment108194
Node: Environment111178
Node: Exit Status112837
Node: Signals114507
Node: Shell Scripts116474
Node: Shell Builtin Commands118989
Node: Bourne Shell Builtins121023
Node: Bash Builtins141623
Node: Modifying Shell Behavior170268
Node: The Set Builtin170613
Node: The Shopt Builtin181026
Node: Special Builtins196825
Node: Shell Variables197804
Node: Bourne Shell Variables198241
Node: Bash Variables200272
Node: Bash Features228652
Node: Invoking Bash229551
Node: Bash Startup Files235500
Node: Interactive Shells240603
Node: What is an Interactive Shell?241013
Node: Is this Shell Interactive?241662
Node: Interactive Shell Behavior242477
Node: Bash Conditional Expressions245852
Node: Shell Arithmetic250092
Node: Aliases252909
Node: Arrays255457
Node: The Directory Stack260541
Node: Directory Stack Builtins261325
Node: Controlling the Prompt264293
Node: The Restricted Shell267039
Node: Bash POSIX Mode268864
Node: Job Control279215
Node: Job Control Basics279675
Node: Job Control Builtins284394
Node: Job Control Variables288924
Node: Command Line Editing290080
Node: Introduction and Notation291751
Node: Readline Interaction293374
Node: Readline Bare Essentials294565
Node: Readline Movement Commands296348
Node: Readline Killing Commands297308
Node: Readline Arguments299226
Node: Searching300270
Node: Readline Init File302456
Node: Readline Init File Syntax303603
Node: Conditional Init Constructs323790
Node: Sample Init File326315
Node: Bindable Readline Commands329432
Node: Commands For Moving330636
Node: Commands For History331779
Node: Commands For Text336068
Node: Commands For Killing339457
Node: Numeric Arguments341938
Node: Commands For Completion343077
Node: Keyboard Macros347268
Node: Miscellaneous Commands347955
Node: Readline vi Mode353759
Node: Programmable Completion354666
Node: Programmable Completion Builtins362127
Node: A Programmable Completion Example372013
Node: Using History Interactively377265
Node: Bash History Facilities377949
Node: Bash History Builtins380950
Node: History Interaction384947
Node: Event Designators387911
Node: Word Designators389130
Node: Modifiers390767
Node: Installing Bash392169
Node: Basic Installation393306
Node: Compilers and Options395997
Node: Compiling For Multiple Architectures396738
Node: Installation Names398401
Node: Specifying the System Type399219
Node: Sharing Defaults399935
Node: Operation Controls400608
Node: Optional Features401566
Node: Reporting Bugs411823
Node: Major Differences From The Bourne Shell413017
Node: GNU Free Documentation License429869
Node: Indexes455046
Node: Builtin Index455500
Node: Reserved Word Index462327
Node: Variable Index464775
Node: Function Index480234
Node: Concept Index493391

End Tag Table
+34 -40
View File
@@ -1,12 +1,9 @@
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/MacPorts 2016_1) (preloaded format=pdfetex 2016.7.6) 31 AUG 2016 10:24
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/MacPorts 2016_1) (preloaded format=pdftex 2016.7.6) 7 SEP 2016 17:14
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\catcode126=12 \def\normaltilde{~}\catcode126=13 \let~\normaltilde \input /u
sr/homes/chet/src/bash/src/doc/bashref.texi
(/usr/homes/chet/src/bash/src/doc/bashref.texi
(/Users/chet/src/bash/src/doc/texinfo.tex
**/usr/homes/chet/src/bash/src/doc/bashref.texi
(/usr/homes/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -162,22 +159,19 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
texinfo.tex: doing @include of version.texi
(/Users/chet/src/bash/src/doc/version.texi) [1{/opt/local/var/db/texmf/fonts/ma
p/pdftex/updmap/pdftex.map}] [2] (/Users/chet/src/bash/src/doc/bashref.toc
[-1] [-2] [-3]) [-4] (/Users/chet/src/bash/src/doc/bashref.toc)
(/Users/chet/src/bash/src/doc/bashref.toc) Chapter 1
(./version.texi) [1{/opt/local/var/db/texmf/fonts/map/pdftex/updmap/pdftex.map}
] [2] (./bashref.toc [-1] [-2] [-3]) [-4] (./bashref.toc) (./bashref.toc)
Chapter 1
\openout0 = `bashref.toc'.
(/Users/chet/src/bash/src/doc/bashref.aux)
(./bashref.aux)
\openout1 = `bashref.aux'.
Chapter 2 [1] [2]
@cpindfile=@write2
\openout2 = `bashref.cp'.
[3] Chapter 3
[4] [5] [6]
[3] Chapter 3 [4] [5] [6]
@vrindfile=@write3
\openout3 = `bashref.vr'.
@@ -185,7 +179,8 @@ p/pdftex/updmap/pdftex.map}] [2] (/Users/chet/src/bash/src/doc/bashref.toc
@rwindfile=@write4
\openout4 = `bashref.rw'.
[8] [9] [10]
[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[]
@@ -384,35 +379,34 @@ texinfo.tex: doing @include of hsuser.texi
Appendix C [155]
texinfo.tex: doing @include of fdl.texi
(/Users/chet/src/bash/src/doc/fdl.texi [156] [157] [158]
[159] [160] [161] [162]) Appendix D [163] [164] [165] [166] [167] [168]
[169] [170] [171] [172] )
(./fdl.texi [156] [157] [158] [159] [160] [161] [162])
Appendix D [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] )
Here is how much of TeX's memory you used:
4060 strings out of 497105
47057 string characters out of 6206776
136596 words of memory out of 5000000
4059 strings out of 497105
46636 string characters out of 6206779
137600 words of memory out of 5000000
4846 multiletter control sequences out of 15000+600000
34315 words of font info for 116 fonts, out of 8000000 for 9000
51 hyphenation exceptions out of 8191
16i,6n,16p,394b,968s stack positions out of 5000i,500n,10000p,200000b,80000s
{/opt/local/share/texmf-texlive/fonts/enc/dvips/cm-sup
er/cm-super-t1.enc}</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 (178 pages, 734126 bytes).
16i,6n,16p,319b,968s stack positions out of 5000i,500n,10000p,200000b,80000s
{/opt/l
ocal/share/texmf-texlive/fonts/enc/dvips/cm-super/cm-super-t1.enc}</opt/local/s
hare/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbx12.pfb></opt/local/share/
texmf-texlive/fonts/type1/public/amsfonts/cm/cmcsc10.pfb></opt/local/share/texm
f-texlive/fonts/type1/public/amsfonts/cm/cmmi10.pfb></opt/local/share/texmf-tex
live/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/texmf-texlive/fonts/type1/public/
amsfonts/cm/cmsl10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfo
nts/cm/cmsltt10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts
/cm/cmsy10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/c
mti10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmtt10
.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmtt12.pfb>
</opt/local/share/texmf-texlive/fonts/type1/public/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 (178 pages, 734389 bytes).
PDF statistics:
2577 PDF objects out of 2984 (max. 8388607)
2354 compressed objects within 24 object streams
BIN
View File
Binary file not shown.
+204 -196
View File
@@ -1,7 +1,7 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.996 Copyright 2016 Radical Eye Software
%%Title: bashref.dvi
%%CreationDate: Wed Aug 31 10:24:23 2016
%%CreationDate: Wed Sep 7 17:14:23 2016
%%Pages: 178
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
@@ -12,7 +12,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
%DVIPSParameters: dpi=600
%DVIPSSource: TeX output 2016.08.31:1024
%DVIPSSource: TeX output 2016.09.07:1714
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -7596,23 +7596,24 @@ ifelse
TeXDict begin 1 0 bop 150 1318 a Fv(Bash)64 b(Reference)j(Man)-5
b(ual)p 150 1385 3600 34 v 2361 1481 a Fu(Reference)31
b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(4.4,)g(for)f
Ft(Bash)g Fu(V)-8 b(ersion)31 b(4.4.)3252 1697 y(August)f(2016)150
4927 y Fs(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
Ft(Bash)g Fu(V)-8 b(ersion)31 b(4.4.)3118 1697 y(Septem)m(b)s(er)f
(2016)150 4927 y Fs(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11
b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068
y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
b(oundation)p 150 5141 3600 17 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 150 4279 a Fu(This)35 b(text)h(is)g(a)g(brief)f
(description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(4.4,)c(26)f(August)f
(2016\).)150 4523 y(This)e(is)g(Edition)h(4.4,)h(last)f(up)s(dated)e
(26)i(August)f(2016,)j(of)e Fr(The)f(GNU)h(Bash)f(Reference)h(Man)m
(ual)p Fu(,)h(for)150 4633 y Ft(Bash)p Fu(,)f(V)-8 b(ersion)31
b(4.4.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767
y Fq(\015)f Fu(1988{2016)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h
(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s
(cumen)m(t)f(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(4.4,)c(7)e(Septem)m(b)s
(er)g(2016\).)150 4523 y(This)h(is)h(Edition)g(4.4,)i(last)f(up)s
(dated)d(7)i(Septem)m(b)s(er)g(2016,)i(of)e Fr(The)f(GNU)i(Bash)f
(Reference)h(Man)m(ual)p Fu(,)150 4633 y(for)d Ft(Bash)p
Fu(,)g(V)-8 b(ersion)31 b(4.4.)150 4767 y(Cop)m(yrigh)m(t)602
4764 y(c)577 4767 y Fq(\015)f Fu(1988{2016)35 b(F)-8
b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390
4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
@@ -15008,281 +15009,288 @@ Fu(builtin.)p eop end
TeXDict begin 96 101 bop 150 -116 a Fu(Chapter)30 b(6:)41
b(Bash)30 b(F)-8 b(eatures)2484 b(96)225 299 y Fq(\017)60
b Fu(Using)31 b(the)f Ft(enable)f Fu(builtin)h(command)g(to)h(enable)g
(disabled)f(shell)g(builtins.)225 430 y Fq(\017)60 b
(disabled)f(shell)g(builtins.)225 434 y Fq(\017)60 b
Fu(Sp)s(ecifying)30 b(the)g Ft(-p)g Fu(option)h(to)g(the)g
Ft(command)d Fu(builtin.)225 560 y Fq(\017)60 b Fu(T)-8
Ft(command)d Fu(builtin.)225 569 y Fq(\017)60 b Fu(T)-8
b(urning)29 b(o\013)i(restricted)g(mo)s(de)f(with)g(`)p
Ft(set)g(+r)p Fu(')g(or)g(`)p Ft(set)g(+o)g(restricted)p
Fu('.)275 712 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m(y)
g(startup)f(\014les)g(are)h(read.)275 843 y(When)j(a)i(command)e(that)i
Fu('.)275 729 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m(y)
g(startup)f(\014les)g(are)h(read.)275 865 y(When)j(a)i(command)e(that)i
(is)f(found)f(to)h(b)s(e)g(a)g(shell)g(script)g(is)g(executed)h(\(see)g
(Section)g(3.8)g([Shell)150 952 y(Scripts],)25 b(page)e(40\),)j
(Section)g(3.8)g([Shell)150 974 y(Scripts],)25 b(page)e(40\),)j
Ft(rbash)c Fu(turns)g(o\013)i(an)m(y)f(restrictions)h(in)f(the)g(shell)
h(spa)m(wned)e(to)i(execute)g(the)g(script.)150 1185
y Fs(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)150 1345 y Fu(Starting)39
h(spa)m(wned)e(to)i(execute)g(the)g(script.)150 1216
y Fs(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)150 1376 y Fu(Starting)39
b(Bash)f(with)g(the)h Ft(--posix)d Fu(command-line)j(option)g(or)f
(executing)h(`)p Ft(set)30 b(-o)g(posix)p Fu(')37 b(while)150
1454 y(Bash)26 b(is)g(running)e(will)j(cause)f(Bash)g(to)h(conform)f
1485 y(Bash)26 b(is)g(running)e(will)j(cause)f(Bash)g(to)h(conform)f
(more)g(closely)h(to)g(the)f Fm(posix)f Fu(standard)g(b)m(y)h(c)m
(hanging)150 1564 y(the)31 b(b)s(eha)m(vior)f(to)h(matc)m(h)g(that)g
(hanging)150 1595 y(the)31 b(b)s(eha)m(vior)f(to)h(matc)m(h)g(that)g
(sp)s(eci\014ed)f(b)m(y)g Fm(posix)g Fu(in)g(areas)h(where)f(the)h
(Bash)f(default)h(di\013ers.)275 1694 y(When)f(in)m(v)m(ok)m(ed)h(as)g
(Bash)f(default)h(di\013ers.)275 1730 y(When)f(in)m(v)m(ok)m(ed)h(as)g
Ft(sh)p Fu(,)f(Bash)h(en)m(ters)g Fm(posix)e Fu(mo)s(de)h(after)h
(reading)g(the)f(startup)g(\014les.)275 1825 y(The)f(follo)m(wing)j
(reading)g(the)f(startup)g(\014les.)275 1866 y(The)f(follo)m(wing)j
(list)f(is)g(what's)f(c)m(hanged)h(when)e(`)p Fm(posix)h
Fu(mo)s(de')h(is)f(in)g(e\013ect:)199 1956 y(1.)61 b(When)28
Fu(mo)s(de')h(is)f(in)g(e\013ect:)199 2001 y(1.)61 b(When)28
b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e(longer)h(exists,)h(Bash)
f(will)g(re-searc)m(h)h Ft($PATH)d Fu(to)i(\014nd)330
2065 y(the)i(new)e(lo)s(cation.)43 b(This)29 b(is)i(also)g(a)m(v)-5
2111 y(the)i(new)e(lo)s(cation.)43 b(This)29 b(is)i(also)g(a)m(v)-5
b(ailable)33 b(with)d(`)p Ft(shopt)f(-s)h(checkhash)p
Fu('.)199 2196 y(2.)61 b(The)42 b(message)h(prin)m(ted)e(b)m(y)h(the)g
Fu('.)199 2246 y(2.)61 b(The)42 b(message)h(prin)m(ted)e(b)m(y)h(the)g
(job)g(con)m(trol)i(co)s(de)e(and)f(builtins)h(when)f(a)h(job)g(exits)h
(with)f(a)330 2305 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
2436 y(3.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)
(with)f(a)330 2355 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
2490 y(3.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)
m(trol)h(co)s(de)g(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s(ed)e
(is)330 2546 y(`Stopp)s(ed\()p Fr(signame)5 b Fu(\)',)31
(is)330 2600 y(`Stopp)s(ed\()p Fr(signame)5 b Fu(\)',)31
b(where)f Fr(signame)36 b Fu(is,)31 b(for)f(example,)h
Ft(SIGTSTP)p Fu(.)199 2676 y(4.)61 b(Alias)31 b(expansion)g(is)f(alw)m
Ft(SIGTSTP)p Fu(.)199 2735 y(4.)61 b(Alias)31 b(expansion)g(is)f(alw)m
(a)m(ys)i(enabled,)e(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)199
2807 y(5.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
2870 y(5.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
m(text)i(where)d(reserv)m(ed)h(w)m(ords)f(are)i(recognized)g(do)f(not)
330 2917 y(undergo)30 b(alias)h(expansion.)199 3047 y(6.)61
330 2979 y(undergo)30 b(alias)h(expansion.)199 3114 y(6.)61
b(The)38 b Fm(posix)h Ft(PS1)f Fu(and)g Ft(PS2)g Fu(expansions)g(of)i
(`)p Ft(!)p Fu(')f(to)g(the)g(history)g(n)m(um)m(b)s(er)f(and)g(`)p
Ft(!!)p Fu(')h(to)g(`)p Ft(!)p Fu(')h(are)330 3157 y(enabled,)26
Ft(!!)p Fu(')h(to)g(`)p Ft(!)p Fu(')h(are)330 3224 y(enabled,)26
b(and)f(parameter)g(expansion)g(is)g(p)s(erformed)e(on)i(the)g(v)-5
b(alues)25 b(of)g Ft(PS1)f Fu(and)h Ft(PS2)f Fu(regardless)330
3266 y(of)31 b(the)f(setting)i(of)e(the)h Ft(promptvars)c
Fu(option.)199 3397 y(7.)61 b(The)30 b Fm(posix)g Fu(startup)f(\014les)
3333 y(of)31 b(the)f(setting)i(of)e(the)h Ft(promptvars)c
Fu(option.)199 3468 y(7.)61 b(The)30 b Fm(posix)g Fu(startup)f(\014les)
i(are)g(executed)g(\()p Ft($ENV)p Fu(\))f(rather)g(than)g(the)h(normal)
f(Bash)g(\014les.)199 3528 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h
f(Bash)g(\014les.)199 3603 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h
(p)s(erformed)f(on)h(assignmen)m(ts)g(preceding)g(a)g(command)g(name,)g
(rather)330 3637 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
(on)e(the)h(line.)199 3768 y(9.)61 b(The)30 b(default)g(history)h
(rather)330 3713 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
(on)e(the)h(line.)199 3848 y(9.)61 b(The)30 b(default)g(history)h
(\014le)f(is)h Ft(~/.sh_history)26 b Fu(\(this)31 b(is)f(the)h(default)
g(v)-5 b(alue)30 b(of)h Ft($HISTFILE)p Fu(\).)154 3899
g(v)-5 b(alue)30 b(of)h Ft($HISTFILE)p Fu(\).)154 3982
y(10.)61 b(Redirection)25 b(op)s(erators)f(do)g(not)g(p)s(erform)f
(\014lename)h(expansion)g(on)g(the)g(w)m(ord)f(in)h(the)g(redirection)
330 4008 y(unless)30 b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
4139 y(11.)61 b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e
330 4092 y(unless)30 b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
4227 y(11.)61 b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e
(w)m(ord)h(splitting)h(on)f(the)h(w)m(ord)f(in)g(the)g(redirection.)154
4269 y(12.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5
4362 y(12.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5
b(alid)35 b(shell)f Ft(name)p Fu(s.)52 b(That)34 b(is,)i(they)f(ma)m(y)
g(not)g(con)m(tain)g(c)m(haracters)330 4379 y(other)e(than)g(letters,)h
g(not)g(con)m(tain)g(c)m(haracters)330 4472 y(other)e(than)g(letters,)h
(digits,)h(and)d(underscores,)h(and)f(ma)m(y)h(not)g(start)h(with)e(a)h
(digit.)49 b(Declaring)330 4489 y(a)31 b(function)f(with)g(an)g(in)m(v)
(digit.)49 b(Declaring)330 4581 y(a)31 b(function)f(with)g(an)g(in)m(v)
-5 b(alid)31 b(name)g(causes)f(a)h(fatal)h(syn)m(tax)f(error)f(in)g
(non-in)m(teractiv)m(e)j(shells.)154 4619 y(13.)61 b(F)-8
(non-in)m(teractiv)m(e)j(shells.)154 4716 y(13.)61 b(F)-8
b(unction)31 b(names)f(ma)m(y)h(not)g(b)s(e)f(the)g(same)h(as)g(one)f
(of)h(the)f Fm(posix)g Fu(sp)s(ecial)h(builtins.)154
4750 y(14.)61 b Fm(posix)30 b Fu(sp)s(ecial)h(builtins)e(are)i(found)e
4851 y(14.)61 b Fm(posix)30 b Fu(sp)s(ecial)h(builtins)e(are)i(found)e
(b)s(efore)h(shell)h(functions)f(during)f(command)h(lo)s(okup.)154
4881 y(15.)61 b(Literal)28 b(tildes)g(that)f(app)s(ear)f(as)i(the)f
(\014rst)f(c)m(haracter)j(in)d(elemen)m(ts)j(of)e(the)g
Ft(PATH)f Fu(v)-5 b(ariable)27 b(are)h(not)330 4990 y(expanded)i(as)g
(describ)s(ed)f(ab)s(o)m(v)m(e)j(under)d(Section)i(3.5.2)h([Tilde)f
(Expansion],)f(page)h(22.)154 5121 y(16.)61 b(The)29
b Ft(time)g Fu(reserv)m(ed)h(w)m(ord)g(ma)m(y)g(b)s(e)g(used)f(b)m(y)h
(itself)g(as)g(a)h(command.)40 b(When)30 b(used)f(in)g(this)h(w)m(a)m
(y)-8 b(,)330 5230 y(it)33 b(displa)m(ys)g(timing)g(statistics)h(for)e
(the)h(shell)g(and)f(its)g(completed)i(c)m(hildren.)47
b(The)32 b Ft(TIMEFORMAT)330 5340 y Fu(v)-5 b(ariable)31
b(con)m(trols)h(the)e(format)h(of)g(the)f(timing)h(information.)p
eop end
4986 y(15.)61 b(When)48 b(prin)m(ting)g(shell)h(function)f
(de\014nitions)g(\(e.g.,)55 b(b)m(y)48 b Ft(type)p Fu(\),)k(Bash)d(do)s
(es)f(not)h(prin)m(t)f(the)330 5095 y Ft(function)28
b Fu(k)m(eyw)m(ord.)154 5230 y(16.)61 b(Literal)28 b(tildes)g(that)f
(app)s(ear)f(as)i(the)f(\014rst)f(c)m(haracter)j(in)d(elemen)m(ts)j(of)
e(the)g Ft(PATH)f Fu(v)-5 b(ariable)27 b(are)h(not)330
5340 y(expanded)i(as)g(describ)s(ed)f(ab)s(o)m(v)m(e)j(under)d(Section)
i(3.5.2)h([Tilde)f(Expansion],)f(page)h(22.)p eop end
%%Page: 97 103
TeXDict begin 97 102 bop 150 -116 a Fu(Chapter)30 b(6:)41
b(Bash)30 b(F)-8 b(eatures)2484 b(97)154 299 y(17.)61
b(When)33 b(parsing)g(and)f(expanding)h(a)h($)p Fi({)6
b Fu(.)22 b(.)h(.)11 b Fi(})33 b Fu(expansion)g(that)h(app)s(ears)f
(within)f(double)h(quotes,)330 408 y(single)42 b(quotes)g(are)g(no)g
(longer)g(sp)s(ecial)g(and)f(cannot)i(b)s(e)e(used)g(to)h(quote)g(a)g
(closing)h(brace)f(or)330 518 y(other)31 b(sp)s(ecial)h(c)m(haracter,)i
(unless)c(the)i(op)s(erator)f(is)g(one)h(of)f(those)h(de\014ned)e(to)i
(p)s(erform)e(pattern)330 628 y(remo)m(v)-5 b(al.)42
b(In)30 b(this)g(case,)i(they)e(do)g(not)h(ha)m(v)m(e)h(to)f(app)s(ear)
e(as)i(matc)m(hed)g(pairs.)154 768 y(18.)61 b(The)29
b(parser)g(do)s(es)g(not)h(recognize)h Ft(time)d Fu(as)i(a)g(reserv)m
(ed)f(w)m(ord)g(if)h(the)f(next)h(tok)m(en)h(b)s(egins)d(with)i(a)330
877 y(`)p Ft(-)p Fu('.)154 1017 y(19.)61 b(The)30 b(`)p
Ft(!)p Fu(')h(c)m(haracter)h(do)s(es)e(not)h(in)m(tro)s(duce)g(history)
f(expansion)h(within)f(a)h(double-quoted)g(string,)330
1127 y(ev)m(en)g(if)f(the)h Ft(histexpand)d Fu(option)i(is)h(enabled.)
154 1267 y(20.)61 b(If)24 b(a)g Fm(posix)g Fu(sp)s(ecial)h(builtin)f
(returns)f(an)h(error)g(status,)i(a)e(non-in)m(teractiv)m(e)j(shell)e
(exits.)39 b(The)24 b(fatal)330 1377 y(errors)30 b(are)h(those)f
(listed)h(in)f(the)h Fm(posix)e Fu(standard,)h(and)g(include)g(things)g
(lik)m(e)i(passing)e(incorrect)330 1486 y(options,)43
b(redirection)d(errors,)i(v)-5 b(ariable)41 b(assignmen)m(t)g(errors)e
(for)g(assignmen)m(ts)i(preceding)f(the)330 1596 y(command)30
b(name,)h(and)f(so)g(on.)154 1736 y(21.)61 b(A)31 b(non-in)m(teractiv)m
(e)j(shell)d(exits)h(with)e(an)h(error)g(status)g(if)g(a)g(v)-5
b(ariable)32 b(assignmen)m(t)g(error)e(o)s(ccurs)330
1845 y(when)38 b(no)h(command)g(name)g(follo)m(ws)i(the)e(assignmen)m
(t)h(statemen)m(ts.)69 b(A)39 b(v)-5 b(ariable)40 b(assignmen)m(t)330
1955 y(error)30 b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g
(assign)f(a)h(v)-5 b(alue)31 b(to)g(a)g(readonly)f(v)-5
b(ariable.)154 2095 y(22.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d
(exits)h(with)e(an)h(error)g(status)g(if)g(a)g(v)-5 b(ariable)32
b(assignmen)m(t)g(error)e(o)s(ccurs)330 2205 y(in)g(an)g(assignmen)m(t)
i(statemen)m(t)g(preceding)e(a)h(sp)s(ecial)g(builtin,)f(but)g(not)g
(with)h(an)m(y)f(other)h(simple)330 2314 y(command.)154
2454 y(23.)61 b(A)43 b(non-in)m(teractiv)m(e)i(shell)e(exits)h(with)f
(an)f(error)h(status)g(if)g(the)g(iteration)h(v)-5 b(ariable)44
b(in)f(a)g Ft(for)330 2564 y Fu(statemen)m(t)32 b(or)f(the)f(selection)
i(v)-5 b(ariable)32 b(in)e(a)g Ft(select)f Fu(statemen)m(t)j(is)f(a)f
(readonly)h(v)-5 b(ariable.)154 2704 y(24.)61 b(Non-in)m(teractiv)m(e)
b(The)29 b Ft(time)g Fu(reserv)m(ed)h(w)m(ord)g(ma)m(y)g(b)s(e)g(used)f
(b)m(y)h(itself)g(as)g(a)h(command.)40 b(When)30 b(used)f(in)g(this)h
(w)m(a)m(y)-8 b(,)330 408 y(it)33 b(displa)m(ys)g(timing)g(statistics)h
(for)e(the)h(shell)g(and)f(its)g(completed)i(c)m(hildren.)47
b(The)32 b Ft(TIMEFORMAT)330 518 y Fu(v)-5 b(ariable)31
b(con)m(trols)h(the)e(format)h(of)g(the)f(timing)h(information.)154
646 y(18.)61 b(When)33 b(parsing)g(and)f(expanding)h(a)h($)p
Fi({)6 b Fu(.)22 b(.)h(.)11 b Fi(})33 b Fu(expansion)g(that)h(app)s
(ears)f(within)f(double)h(quotes,)330 756 y(single)42
b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f(cannot)i(b)s(e)e
(used)g(to)h(quote)g(a)g(closing)h(brace)f(or)330 865
y(other)31 b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s(erator)f
(is)g(one)h(of)f(those)h(de\014ned)e(to)i(p)s(erform)e(pattern)330
975 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they)e(do)g(not)h
(ha)m(v)m(e)h(to)f(app)s(ear)e(as)i(matc)m(hed)g(pairs.)154
1103 y(19.)61 b(The)29 b(parser)g(do)s(es)g(not)h(recognize)h
Ft(time)d Fu(as)i(a)g(reserv)m(ed)f(w)m(ord)g(if)h(the)f(next)h(tok)m
(en)h(b)s(egins)d(with)i(a)330 1212 y(`)p Ft(-)p Fu('.)154
1340 y(20.)61 b(The)30 b(`)p Ft(!)p Fu(')h(c)m(haracter)h(do)s(es)e
(not)h(in)m(tro)s(duce)g(history)f(expansion)h(within)f(a)h
(double-quoted)g(string,)330 1450 y(ev)m(en)g(if)f(the)h
Ft(histexpand)d Fu(option)i(is)h(enabled.)154 1577 y(21.)61
b(If)24 b(a)g Fm(posix)g Fu(sp)s(ecial)h(builtin)f(returns)f(an)h
(error)g(status,)i(a)e(non-in)m(teractiv)m(e)j(shell)e(exits.)39
b(The)24 b(fatal)330 1687 y(errors)30 b(are)h(those)f(listed)h(in)f
(the)h Fm(posix)e Fu(standard,)h(and)g(include)g(things)g(lik)m(e)i
(passing)e(incorrect)330 1797 y(options,)43 b(redirection)d(errors,)i
(v)-5 b(ariable)41 b(assignmen)m(t)g(errors)e(for)g(assignmen)m(ts)i
(preceding)f(the)330 1906 y(command)30 b(name,)h(and)f(so)g(on.)154
2034 y(22.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e
(an)h(error)g(status)g(if)g(a)g(v)-5 b(ariable)32 b(assignmen)m(t)g
(error)e(o)s(ccurs)330 2144 y(when)38 b(no)h(command)g(name)g(follo)m
(ws)i(the)e(assignmen)m(t)h(statemen)m(ts.)69 b(A)39
b(v)-5 b(ariable)40 b(assignmen)m(t)330 2253 y(error)30
b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g(assign)f(a)h(v)-5
b(alue)31 b(to)g(a)g(readonly)f(v)-5 b(ariable.)154 2381
y(23.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e(an)h
(error)g(status)g(if)g(a)g(v)-5 b(ariable)32 b(assignmen)m(t)g(error)e
(o)s(ccurs)330 2491 y(in)g(an)g(assignmen)m(t)i(statemen)m(t)g
(preceding)e(a)h(sp)s(ecial)g(builtin,)f(but)g(not)g(with)h(an)m(y)f
(other)h(simple)330 2600 y(command.)154 2728 y(24.)61
b(A)43 b(non-in)m(teractiv)m(e)i(shell)e(exits)h(with)f(an)f(error)h
(status)g(if)g(the)g(iteration)h(v)-5 b(ariable)44 b(in)f(a)g
Ft(for)330 2838 y Fu(statemen)m(t)32 b(or)f(the)f(selection)i(v)-5
b(ariable)32 b(in)e(a)g Ft(select)f Fu(statemen)m(t)j(is)f(a)f
(readonly)h(v)-5 b(ariable.)154 2966 y(25.)61 b(Non-in)m(teractiv)m(e)
34 b(shells)c(exit)h(if)g Fr(\014lename)k Fu(in)30 b
Ft(.)g Fr(\014lename)36 b Fu(is)31 b(not)f(found.)154
2844 y(25.)61 b(Non-in)m(teractiv)m(e)41 b(shells)d(exit)h(if)f(a)g
3093 y(26.)61 b(Non-in)m(teractiv)m(e)41 b(shells)d(exit)h(if)f(a)g
(syn)m(tax)g(error)g(in)f(an)h(arithmetic)h(expansion)f(results)f(in)h
(an)330 2953 y(in)m(v)-5 b(alid)31 b(expression.)154
3093 y(26.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(on)g(w)m
(ord)f(expansion)g(errors.)154 3233 y(27.)61 b(Non-in)m(teractiv)m(e)27
b(shells)c(exit)i(if)e(there)h(is)f(a)h(syn)m(tax)g(error)f(in)g(a)h
(script)f(read)g(with)h(the)f Ft(.)g Fu(or)h Ft(source)330
3343 y Fu(builtins,)30 b(or)g(in)g(a)h(string)g(pro)s(cessed)e(b)m(y)i
(the)f Ft(eval)f Fu(builtin.)154 3483 y(28.)61 b(Pro)s(cess)30
b(substitution)g(is)h(not)f(a)m(v)-5 b(ailable.)154 3623
y(29.)61 b(While)32 b(v)-5 b(ariable)32 b(indirection)f(is)g(a)m(v)-5
b(ailable,)34 b(it)d(ma)m(y)h(not)f(b)s(e)g(applied)g(to)g(the)h(`)p
Ft(#)p Fu(')f(and)f(`)p Ft(?)p Fu(')h(sp)s(ecial)330
3733 y(parameters.)154 3873 y(30.)61 b(Assignmen)m(t)23
b(statemen)m(ts)h(preceding)e Fm(posix)f Fu(sp)s(ecial)i(builtins)f(p)s
(ersist)g(in)f(the)i(shell)f(en)m(vironmen)m(t)330 3982
y(after)31 b(the)f(builtin)g(completes.)154 4122 y(31.)61
b(Assignmen)m(t)35 b(statemen)m(ts)h(preceding)f(shell)f(function)g
(calls)i(p)s(ersist)e(in)g(the)h(shell)f(en)m(vironmen)m(t)330
4232 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h
(an)330 3203 y(in)m(v)-5 b(alid)31 b(expression.)154
3331 y(27.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g(a)f
(parameter)h(expansion)g(error)f(o)s(ccurs.)154 3459
y(28.)61 b(Non-in)m(teractiv)m(e)27 b(shells)c(exit)i(if)e(there)h(is)f
(a)h(syn)m(tax)g(error)f(in)g(a)h(script)f(read)g(with)h(the)f
Ft(.)g Fu(or)h Ft(source)330 3568 y Fu(builtins,)30 b(or)g(in)g(a)h
(string)g(pro)s(cessed)e(b)m(y)i(the)f Ft(eval)f Fu(builtin.)154
3696 y(29.)61 b(Pro)s(cess)30 b(substitution)g(is)h(not)f(a)m(v)-5
b(ailable.)154 3824 y(30.)61 b(While)32 b(v)-5 b(ariable)32
b(indirection)f(is)g(a)m(v)-5 b(ailable,)34 b(it)d(ma)m(y)h(not)f(b)s
(e)g(applied)g(to)g(the)h(`)p Ft(#)p Fu(')f(and)f(`)p
Ft(?)p Fu(')h(sp)s(ecial)330 3934 y(parameters.)154 4061
y(31.)61 b(When)28 b(expanding)g(the)g(`)p Ft(*)p Fu(')g(sp)s(ecial)h
(parameter)f(in)g(a)h(pattern)f(con)m(text)i(where)e(the)g(expansion)g
(is)330 4171 y(double-quoted)i(do)s(es)g(not)h(treat)h(the)e
Ft($*)g Fu(as)h(if)f(it)h(w)m(ere)g(double-quoted.)154
4299 y(32.)61 b(Assignmen)m(t)23 b(statemen)m(ts)h(preceding)e
Fm(posix)f Fu(sp)s(ecial)i(builtins)f(p)s(ersist)g(in)f(the)i(shell)f
(en)m(vironmen)m(t)330 4408 y(after)31 b(the)f(builtin)g(completes.)154
4536 y(33.)61 b(Assignmen)m(t)35 b(statemen)m(ts)h(preceding)f(shell)f
(function)g(calls)i(p)s(ersist)e(in)g(the)h(shell)f(en)m(vironmen)m(t)
330 4646 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h
Fm(posix)e Fu(sp)s(ecial)i(builtin)f(command)g(had)g(b)s(een)g
(executed.)154 4372 y(32.)61 b(The)31 b Ft(command)e
(executed.)154 4774 y(34.)61 b(The)31 b Ft(command)e
Fu(builtin)i(do)s(es)g(not)h(prev)m(en)m(t)f(builtins)g(that)h(tak)m(e)
h(assignmen)m(t)f(statemen)m(ts)h(as)f(ar-)330 4482 y(gumen)m(ts)40
h(assignmen)m(t)f(statemen)m(ts)h(as)f(ar-)330 4883 y(gumen)m(ts)40
b(from)e(expanding)h(them)g(as)h(assignmen)m(t)g(statemen)m(ts;)46
b(when)38 b(not)i(in)f Fm(posix)f Fu(mo)s(de,)330 4591
b(when)38 b(not)i(in)f Fm(posix)f Fu(mo)s(de,)330 4993
y(assignmen)m(t)k(builtins)e(lose)h(their)g(assignmen)m(t)h(statemen)m
(t)h(expansion)d(prop)s(erties)g(when)g(pre-)330 4701
y(ceded)31 b(b)m(y)f Ft(command)p Fu(.)154 4841 y(33.)61
(t)h(expansion)d(prop)s(erties)g(when)g(pre-)330 5103
y(ceded)31 b(b)m(y)f Ft(command)p Fu(.)154 5230 y(35.)61
b(The)27 b Ft(bg)g Fu(builtin)g(uses)g(the)h(required)f(format)h(to)g
(describ)s(e)f(eac)m(h)i(job)e(placed)h(in)f(the)h(bac)m(kground,)330
4950 y(whic)m(h)h(do)s(es)g(not)g(include)g(an)g(indication)h(of)f
(whether)f(the)h(job)g(is)g(the)h(curren)m(t)e(or)h(previous)g(job.)154
5090 y(34.)61 b(The)23 b(output)f(of)i(`)p Ft(kill)29
b(-l)p Fu(')23 b(prin)m(ts)f(all)i(the)g(signal)f(names)g(on)g(a)h
(single)g(line,)h(separated)e(b)m(y)g(spaces,)330 5200
y(without)30 b(the)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
5340 y(35.)61 b(The)30 b Ft(kill)f Fu(builtin)h(do)s(es)g(not)h(accept)
h(signal)f(names)f(with)g(a)h(`)p Ft(SIG)p Fu(')f(pre\014x.)p
5340 y(whic)m(h)h(do)s(es)g(not)g(include)g(an)g(indication)h(of)f
(whether)f(the)h(job)g(is)g(the)h(curren)m(t)e(or)h(previous)g(job.)p
eop end
%%Page: 98 104
TeXDict begin 98 103 bop 150 -116 a Fu(Chapter)30 b(6:)41
b(Bash)30 b(F)-8 b(eatures)2484 b(98)154 299 y(36.)61
b(The)38 b Ft(export)f Fu(and)g Ft(readonly)f Fu(builtin)i(commands)g
(displa)m(y)h(their)f(output)g(in)g(the)h(format)g(re-)330
408 y(quired)30 b(b)m(y)g Fm(posix)p Fu(.)154 544 y(37.)61
b(The)23 b(output)f(of)i(`)p Ft(kill)29 b(-l)p Fu(')23
b(prin)m(ts)f(all)i(the)g(signal)f(names)g(on)g(a)h(single)g(line,)h
(separated)e(b)m(y)g(spaces,)330 408 y(without)30 b(the)h(`)p
Ft(SIG)p Fu(')f(pre\014x.)154 542 y(37.)61 b(The)30 b
Ft(kill)f Fu(builtin)h(do)s(es)g(not)h(accept)h(signal)f(names)f(with)g
(a)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154 676 y(38.)61 b(The)38
b Ft(export)f Fu(and)g Ft(readonly)f Fu(builtin)i(commands)g(displa)m
(y)h(their)f(output)g(in)g(the)h(format)g(re-)330 786
y(quired)30 b(b)m(y)g Fm(posix)p Fu(.)154 920 y(39.)61
b(The)30 b Ft(trap)f Fu(builtin)h(displa)m(ys)g(signal)i(names)e
(without)g(the)h(leading)g Ft(SIG)p Fu(.)154 679 y(38.)61
(without)g(the)h(leading)g Ft(SIG)p Fu(.)154 1054 y(40.)61
b(The)39 b Ft(trap)e Fu(builtin)i(do)s(esn't)g(c)m(hec)m(k)h(the)g
(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e(signal)i(sp)s
(eci\014cation)330 789 y(and)30 b(rev)m(ert)i(the)e(signal)i(handling)e
(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g(is,)g(unless)f(that)h
(argumen)m(t)330 898 y(consists)e(solely)g(of)g(digits)g(and)f(is)g(a)h
(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38 b(If)28
(eci\014cation)330 1163 y(and)30 b(rev)m(ert)i(the)e(signal)i(handling)
e(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g(is,)g(unless)f(that)
h(argumen)m(t)330 1273 y(consists)e(solely)g(of)g(digits)g(and)f(is)g
(a)h(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38 b(If)28
b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330
1008 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
1383 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
(osition,)f(they)g(should)f(use)h(`)p Ft(-)p Fu(')g(as)g(the)g(\014rst)
f(argumen)m(t.)154 1143 y(39.)61 b(The)21 b Ft(.)h Fu(and)f
f(argumen)m(t.)154 1517 y(41.)61 b(The)21 b Ft(.)h Fu(and)f
Ft(source)f Fu(builtins)h(do)g(not)h(searc)m(h)h(the)f(curren)m(t)f
(directory)h(for)g(the)g(\014lename)f(argumen)m(t)330
1253 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
Ft(PATH)p Fu(.)154 1388 y(40.)61 b(Enabling)21 b Fm(posix)g
1626 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
Ft(PATH)p Fu(.)154 1760 y(42.)61 b(Enabling)21 b Fm(posix)g
Fu(mo)s(de)g(has)g(the)g(e\013ect)i(of)e(setting)i(the)e
Ft(inherit_errexit)d Fu(option,)23 b(so)f(subshells)330
1498 y(spa)m(wned)27 b(to)i(execute)g(command)e(substitutions)h
1870 y(spa)m(wned)27 b(to)i(execute)g(command)e(substitutions)h
(inherit)f(the)h(v)-5 b(alue)28 b(of)g(the)g Ft(-e)f
Fu(option)h(from)g(the)330 1608 y(paren)m(t)37 b(shell.)62
Fu(option)h(from)g(the)330 1979 y(paren)m(t)37 b(shell.)62
b(When)37 b(the)g Ft(inherit_errexit)c Fu(option)38 b(is)f(not)h
(enabled,)h(Bash)e(clears)h(the)g Ft(-e)330 1717 y Fu(option)31
b(in)f(suc)m(h)g(subshells.)154 1852 y(41.)61 b(When)43
(enabled,)h(Bash)e(clears)h(the)g Ft(-e)330 2089 y Fu(option)31
b(in)f(suc)m(h)g(subshells.)154 2223 y(43.)61 b(When)43
b(the)g Ft(alias)f Fu(builtin)g(displa)m(ys)i(alias)g(de\014nitions,)i
(it)d(do)s(es)g(not)g(displa)m(y)h(them)f(with)g(a)330
1962 y(leading)31 b(`)p Ft(alias)e Fu(')i(unless)f(the)g
Ft(-p)g Fu(option)h(is)f(supplied.)154 2097 y(42.)61
2332 y(leading)31 b(`)p Ft(alias)e Fu(')i(unless)f(the)g
Ft(-p)g Fu(option)h(is)f(supplied.)154 2466 y(44.)61
b(When)40 b(the)g Ft(set)f Fu(builtin)h(is)g(in)m(v)m(ok)m(ed)h
(without)f(options,)j(it)e(do)s(es)f(not)g(displa)m(y)g(shell)g
(function)330 2207 y(names)30 b(and)g(de\014nitions.)154
2342 y(43.)61 b(When)36 b(the)g Ft(set)g Fu(builtin)g(is)g(in)m(v)m(ok)
(function)330 2576 y(names)30 b(and)g(de\014nitions.)154
2710 y(45.)61 b(When)36 b(the)g Ft(set)g Fu(builtin)g(is)g(in)m(v)m(ok)
m(ed)i(without)e(options,)i(it)f(displa)m(ys)f(v)-5 b(ariable)37
b(v)-5 b(alues)37 b(without)330 2452 y(quotes,)26 b(unless)d(they)i
b(v)-5 b(alues)37 b(without)330 2819 y(quotes,)26 b(unless)d(they)i
(con)m(tain)g(shell)f(metac)m(haracters,)k(ev)m(en)d(if)f(the)g(result)
g(con)m(tains)i(nonprin)m(ting)330 2562 y(c)m(haracters.)154
2697 y(44.)61 b(When)35 b(the)g Ft(cd)f Fu(builtin)h(is)g(in)m(v)m(ok)m
g(con)m(tains)i(nonprin)m(ting)330 2929 y(c)m(haracters.)154
3063 y(46.)61 b(When)35 b(the)g Ft(cd)f Fu(builtin)h(is)g(in)m(v)m(ok)m
(ed)i(in)d Fr(logical)41 b Fu(mo)s(de,)36 b(and)f(the)g(pathname)g
(constructed)g(from)330 2807 y Ft($PWD)i Fu(and)h(the)h(directory)f
(constructed)g(from)330 3173 y Ft($PWD)i Fu(and)h(the)h(directory)f
(name)h(supplied)e(as)i(an)f(argumen)m(t)h(do)s(es)f(not)g(refer)h(to)g
(an)f(existing)330 2916 y(directory)-8 b(,)32 b Ft(cd)d
(an)f(existing)330 3282 y(directory)-8 b(,)32 b Ft(cd)d
Fu(will)i(fail)g(instead)g(of)f(falling)h(bac)m(k)h(to)f
Fr(ph)m(ysical)j Fu(mo)s(de.)154 3051 y(45.)61 b(The)36
Fr(ph)m(ysical)j Fu(mo)s(de.)154 3416 y(47.)61 b(The)36
b Ft(pwd)f Fu(builtin)h(v)m(eri\014es)h(that)g(the)f(v)-5
b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f(same)h(as)f(the)h(curren)m(t)f
(directory)-8 b(,)330 3161 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m
(directory)-8 b(,)330 3526 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m
(ed)h(to)g(c)m(hec)m(k)h(the)f(\014le)f(system)h(with)f(the)h
Ft(-P)e Fu(option.)154 3296 y(46.)61 b(When)35 b(listing)g(the)g
Ft(-P)e Fu(option.)154 3660 y(48.)61 b(When)35 b(listing)g(the)g
(history)-8 b(,)36 b(the)f Ft(fc)g Fu(builtin)f(do)s(es)g(not)h
(include)g(an)f(indication)i(of)f(whether)f(or)330 3406
(include)g(an)f(indication)i(of)f(whether)f(or)330 3769
y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154
3541 y(47.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
Ft(fc)g Fu(is)g Ft(ed)p Fu(.)154 3677 y(48.)61 b(The)37
3903 y(49.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
Ft(fc)g Fu(is)g Ft(ed)p Fu(.)154 4037 y(50.)61 b(The)37
b Ft(type)g Fu(and)g Ft(command)f Fu(builtins)i(will)g(not)g(rep)s(ort)
f(a)i(non-executable)g(\014le)f(as)g(ha)m(ving)h(b)s(een)330
3786 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
4147 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
(execute)g(suc)m(h)f(a)g(\014le)g(if)g(it)g(is)g(the)g(only)g(so-named)
g(\014le)330 3896 y(found)i(in)h Ft($PATH)p Fu(.)154
4031 y(49.)61 b(The)33 b Ft(vi)f Fu(editing)i(mo)s(de)f(will)g(in)m(v)m
g(\014le)330 4256 y(found)i(in)h Ft($PATH)p Fu(.)154
4390 y(51.)61 b(The)33 b Ft(vi)f Fu(editing)i(mo)s(de)f(will)g(in)m(v)m
(ok)m(e)i(the)e Ft(vi)g Fu(editor)h(directly)f(when)f(the)i(`)p
Ft(v)p Fu(')f(command)g(is)g(run,)330 4141 y(instead)e(of)f(c)m(hec)m
(king)i Ft($VISUAL)d Fu(and)g Ft($EDITOR)p Fu(.)154 4276
y(50.)61 b(When)41 b(the)g Ft(xpg_echo)e Fu(option)i(is)g(enabled,)j
Ft(v)p Fu(')f(command)g(is)g(run,)330 4500 y(instead)e(of)f(c)m(hec)m
(king)i Ft($VISUAL)d Fu(and)g Ft($EDITOR)p Fu(.)154 4634
y(52.)61 b(When)41 b(the)g Ft(xpg_echo)e Fu(option)i(is)g(enabled,)j
(Bash)d(do)s(es)g(not)g(attempt)h(to)g(in)m(terpret)f(an)m(y)h(ar-)330
4386 y(gumen)m(ts)35 b(to)g Ft(echo)e Fu(as)i(options.)54
4743 y(gumen)m(ts)35 b(to)g Ft(echo)e Fu(as)i(options.)54
b(Eac)m(h)35 b(argumen)m(t)g(is)f(displa)m(y)m(ed,)j(after)e(escap)s(e)
g(c)m(haracters)h(are)330 4495 y(con)m(v)m(erted.)154
4631 y(51.)61 b(The)30 b Ft(ulimit)f Fu(builtin)g(uses)h(a)h(blo)s(c)m
g(c)m(haracters)h(are)330 4853 y(con)m(v)m(erted.)154
4987 y(53.)61 b(The)30 b Ft(ulimit)f Fu(builtin)g(uses)h(a)h(blo)s(c)m
(k)g(size)g(of)g(512)g(b)m(ytes)g(for)f(the)h Ft(-c)f
Fu(and)g Ft(-f)f Fu(options.)154 4766 y(52.)61 b(The)39
Fu(and)g Ft(-f)f Fu(options.)154 5121 y(54.)61 b(The)39
b(arriv)-5 b(al)41 b(of)f Ft(SIGCHLD)e Fu(when)h(a)h(trap)g(is)g(set)h
(on)f Ft(SIGCHLD)e Fu(do)s(es)h(not)h(in)m(terrupt)g(the)g
Ft(wait)330 4876 y Fu(builtin)c(and)h(cause)g(it)h(to)f(return)f
Ft(wait)330 5230 y Fu(builtin)c(and)h(cause)g(it)h(to)f(return)f
(immediately)-8 b(.)62 b(The)37 b(trap)f(command)h(is)g(run)e(once)j
(for)f(eac)m(h)330 4985 y(c)m(hild)31 b(that)g(exits.)154
5121 y(53.)61 b(The)27 b Ft(read)f Fu(builtin)g(ma)m(y)i(b)s(e)e(in)m
(terrupted)h(b)m(y)g(a)h(signal)f(for)g(whic)m(h)g(a)h(trap)f(has)g(b)s
(een)f(set.)40 b(If)27 b(Bash)330 5230 y(receiv)m(es)41
b(a)f(trapp)s(ed)e(signal)i(while)f(executing)h Ft(read)p
Fu(,)h(the)e(trap)h(handler)e(executes)i(and)f Ft(read)330
5340 y Fu(returns)29 b(an)h(exit)i(status)e(greater)i(than)e(128.)p
(for)f(eac)m(h)330 5340 y(c)m(hild)31 b(that)g(exits.)p
eop end
%%Page: 99 105
TeXDict begin 99 104 bop 150 -116 a Fu(Chapter)30 b(6:)41
b(Bash)30 b(F)-8 b(eatures)2484 b(99)154 299 y(54.)61
b(Bash)27 b(remo)m(v)m(es)h(an)e(exited)i(bac)m(kground)e(pro)s(cess's)
h(status)g(from)f(the)h(list)g(of)g(suc)m(h)f(statuses)h(after)330
408 y(the)k Ft(wait)e Fu(builtin)h(is)g(used)g(to)h(obtain)g(it.)275
568 y(There)j(is)g(other)h Fm(posix)f Fu(b)s(eha)m(vior)h(that)g(Bash)g
(do)s(es)f(not)h(implemen)m(t)g(b)m(y)g(default)f(ev)m(en)i(when)d(in)
150 677 y Fm(posix)d Fu(mo)s(de.)40 b(Sp)s(eci\014cally:)199
812 y(1.)61 b(The)30 b Ft(fc)f Fu(builtin)h(c)m(hec)m(ks)i
Ft($EDITOR)c Fu(as)j(a)f(program)g(to)h(edit)g(history)f(en)m(tries)h
(if)f Ft(FCEDIT)f Fu(is)h(unset,)330 922 y(rather)g(than)g(defaulting)h
b(Bash)30 b(F)-8 b(eatures)2484 b(99)154 299 y(55.)61
b(The)27 b Ft(read)f Fu(builtin)g(ma)m(y)i(b)s(e)e(in)m(terrupted)h(b)m
(y)g(a)h(signal)f(for)g(whic)m(h)g(a)h(trap)f(has)g(b)s(een)f(set.)40
b(If)27 b(Bash)330 408 y(receiv)m(es)41 b(a)f(trapp)s(ed)e(signal)i
(while)f(executing)h Ft(read)p Fu(,)h(the)e(trap)h(handler)e(executes)i
(and)f Ft(read)330 518 y Fu(returns)29 b(an)h(exit)i(status)e(greater)i
(than)e(128.)154 653 y(56.)61 b(Bash)27 b(remo)m(v)m(es)h(an)e(exited)i
(bac)m(kground)e(pro)s(cess's)h(status)g(from)f(the)h(list)g(of)g(suc)m
(h)f(statuses)h(after)330 762 y(the)k Ft(wait)e Fu(builtin)h(is)g(used)
g(to)h(obtain)g(it.)275 922 y(There)j(is)g(other)h Fm(posix)f
Fu(b)s(eha)m(vior)h(that)g(Bash)g(do)s(es)f(not)h(implemen)m(t)g(b)m(y)
g(default)f(ev)m(en)i(when)d(in)150 1031 y Fm(posix)d
Fu(mo)s(de.)40 b(Sp)s(eci\014cally:)199 1166 y(1.)61
b(The)30 b Ft(fc)f Fu(builtin)h(c)m(hec)m(ks)i Ft($EDITOR)c
Fu(as)j(a)f(program)g(to)h(edit)g(history)f(en)m(tries)h(if)f
Ft(FCEDIT)f Fu(is)h(unset,)330 1275 y(rather)g(than)g(defaulting)h
(directly)g(to)g Ft(ed)p Fu(.)40 b Ft(fc)30 b Fu(uses)g
Ft(ed)g Fu(if)g Ft(EDITOR)f Fu(is)h(unset.)199 1056 y(2.)61
Ft(ed)g Fu(if)g Ft(EDITOR)f Fu(is)h(unset.)199 1410 y(2.)61
b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i(Bash)e(requires)g(the)g
Ft(xpg_echo)e Fu(option)j(to)g(b)s(e)e(enabled)h(for)g(the)g
Ft(echo)f Fu(builtin)330 1166 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275
1325 y(Bash)c(can)g(b)s(e)f(con\014gured)h(to)g(b)s(e)g
Ft(echo)f Fu(builtin)330 1519 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275
1679 y(Bash)c(can)g(b)s(e)f(con\014gured)h(to)g(b)s(e)g
Fm(posix)p Fu(-conforman)m(t)g(b)m(y)g(default,)h(b)m(y)f(sp)s
(ecifying)g(the)g Ft(--enable-)150 1435 y(strict-posix-default)c
(ecifying)g(the)g Ft(--enable-)150 1788 y(strict-posix-default)c
Fu(to)27 b Ft(configure)e Fu(when)h(building)h(\(see)h(Section)g(10.8)g
([Optional)g(F)-8 b(eatures],)150 1544 y(page)31 b(144\).)p
([Optional)g(F)-8 b(eatures],)150 1898 y(page)31 b(144\).)p
eop end
%%Page: 100 106
TeXDict begin 100 105 bop 3614 -116 a Fu(100)150 299
+10 -1
View File
@@ -7392,6 +7392,10 @@ builtins.
@sc{posix} special builtins are found before shell functions
during command lookup.
@item
When printing shell function definitions (e.g., by @code{type}), Bash does
not print the @code{function} keyword.
@item
Literal tildes that appear as the first character in elements of
the @env{PATH} variable are not expanded as described above
@@ -7451,7 +7455,7 @@ Non-interactive shells exit if a syntax error in an arithmetic expansion
results in an invalid expression.
@item
Non-interactive shells exit on word expansion errors.
Non-interactive shells exit if a parameter expansion error occurs.
@item
Non-interactive shells exit if there is a syntax error in a script read
@@ -7465,6 +7469,11 @@ Process substitution is not available.
While variable indirection is available, it may not be applied to the
@samp{#} and @samp{?} special parameters.
@item
When expanding the @samp{*} special parameter in a pattern context where the
expansion is double-quoted does not treat the @code{$*} as if it were
double-quoted.
@item
Assignment statements preceding @sc{posix} special builtins
persist in the shell environment after the builtin completes.
+3 -3
View File
@@ -2,10 +2,10 @@
Copyright (C) 1988-2016 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Fri Aug 26 09:44:56 EDT 2016
@set LASTCHANGE Wed Sep 7 17:12:22 EDT 2016
@set EDITION 4.4
@set VERSION 4.4
@set UPDATED 26 August 2016
@set UPDATED-MONTH August 2016
@set UPDATED 7 September 2016
@set UPDATED-MONTH September 2016
+5 -1
View File
@@ -1492,7 +1492,11 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
login_shell = interactive = 0;
if (user_subshell)
subshell_environment = SUBSHELL_PAREN; /* XXX */
{
subshell_environment = SUBSHELL_PAREN; /* XXX */
if (asynchronous)
subshell_environment |= SUBSHELL_ASYNC;
}
else
{
subshell_environment = 0; /* XXX */
+1 -1
View File
@@ -3920,11 +3920,11 @@ eof_error:
{
nestret = substring (ret, lex_firstind, retind);
heredelim = string_quote_removal (nestret, 0);
free (nestret);
hdlen = STRLEN(heredelim);
/*itrace("parse_comsub:%d: found here doc delimiter `%s' (%d)", line_number, heredelim, hdlen);*/
if (STREQ (heredelim, nestret) == 0)
tflags |= LEX_QUOTEDDOC;
free (nestret);
}
if (ch == '\n')
{
+1 -1
View File
@@ -1,4 +1,4 @@
BUILD_DIR=/usr/local/build/chet/bash/bash-current
BUILD_DIR=/usr/local/build/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
-2
View File
@@ -210,13 +210,11 @@ argv[1] = <correct>
argv[2] = <a>
argv[1] = <correct>
argv[2] = <a>
./exp7.sub: line 5: INFORM: dequote_string: string with bare CTLESC
argv[1] = <^A>
argv[1] = <3>
argv[2] = <^C>
argv[3] = <^C>
argv[4] = <^C>
./exp7.sub: line 10: INFORM: dequote_string: string with bare CTLESC
argv[1] = <^A>
argv[1] = <x^Ay^?z>
argv[1] = <x^Ay^?z>
+2 -1
View File
@@ -1087,8 +1087,9 @@ run_debug_trap ()
close_pgrp_pipe ();
restore_pgrp_pipe (save_pipe);
# endif
if (pipeline_pgrp > 0)
if (pipeline_pgrp > 0 && ((subshell_environment & (SUBSHELL_ASYNC|SUBSHELL_PIPE)) == 0))
give_terminal_to (pipeline_pgrp, 1);
notify_and_cleanup ();
#endif
+2 -2
View File
@@ -1,6 +1,6 @@
/* version.c -- distribution and version numbers. */
/* Copyright (C) 1989-2015 Free Software Foundation, Inc.
/* Copyright (C) 1989-2016 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -43,7 +43,7 @@ const char * const release_status = (char *)0;
#endif
const char * const sccs_version = SCCSVERSION;
const char * const bash_copyright = N_("Copyright (C) 2015 Free Software Foundation, Inc.");
const char * const bash_copyright = N_("Copyright (C) 2016 Free Software Foundation, Inc.");
const char * const bash_license = N_("License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n");
/* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */
+2 -2
View File
@@ -1,6 +1,6 @@
/* version.c -- distribution and version numbers. */
/* Copyright (C) 1989-2014 Free Software Foundation, Inc.
/* Copyright (C) 1989-2016 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -43,7 +43,7 @@ const char * const release_status = (char *)0;
#endif
const char * const sccs_version = SCCSVERSION;
const char * const bash_copyright = N_("Copyright (C) 2014 Free Software Foundation, Inc.");
const char * const bash_copyright = N_("Copyright (C) 2016 Free Software Foundation, Inc.");
const char * const bash_license = N_("License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n");
/* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */