mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-28 07:59:50 +02:00
commit bash-20200313 snapshot
This commit is contained in:
@@ -7531,3 +7531,12 @@ execute_cmd.c
|
||||
resets the signal-in-progress flag if we're running a command in
|
||||
a subshell, since we're not running the trap command (we are the
|
||||
trap command)
|
||||
|
||||
3/10
|
||||
----
|
||||
subst.c
|
||||
- parameter_brace_expand: if we assign the empty string to a variable
|
||||
using the [:]= expansion in a quoted expansion, make sure we note
|
||||
we are returning a quoted null string to the caller by setting
|
||||
W_HASQUOTEDNULL. Fixes bug reported by Martin Castillo
|
||||
<castilma@uni-bremen.de>
|
||||
|
||||
+114
-110
@@ -6644,216 +6644,220 @@ startup files.
|
||||
re-search '$PATH' to find the new location. This is also available
|
||||
with 'shopt -s checkhash'.
|
||||
|
||||
3. The message printed by the job control code and builtins when a job
|
||||
exits with a non-zero status is 'Done(status)'.
|
||||
3. Bash will not insert a command without the execute bit set into the
|
||||
command hash table, even if it returns it as a (last-ditch) result
|
||||
from a '$PATH' search.
|
||||
|
||||
4. The message printed by the job control code and builtins when a job
|
||||
exits with a non-zero status is 'Done(status)'.
|
||||
|
||||
5. The message printed by the job control code and builtins when a job
|
||||
is stopped is 'Stopped(SIGNAME)', where SIGNAME is, for example,
|
||||
'SIGTSTP'.
|
||||
|
||||
5. Alias expansion is always enabled, even in non-interactive shells.
|
||||
6. Alias expansion is always enabled, even in non-interactive shells.
|
||||
|
||||
6. Reserved words appearing in a context where reserved words are
|
||||
7. Reserved words appearing in a context where reserved words are
|
||||
recognized do not undergo alias expansion.
|
||||
|
||||
7. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
|
||||
8. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
|
||||
and '!!' to '!' are enabled, and parameter expansion is performed
|
||||
on the values of 'PS1' and 'PS2' regardless of the setting of the
|
||||
'promptvars' option.
|
||||
|
||||
8. The POSIX startup files are executed ('$ENV') rather than the
|
||||
9. The POSIX startup files are executed ('$ENV') rather than the
|
||||
normal Bash files.
|
||||
|
||||
9. Tilde expansion is only performed on assignments preceding a
|
||||
10. Tilde expansion is only performed on assignments preceding a
|
||||
command name, rather than on all assignment statements on the line.
|
||||
|
||||
10. The default history file is '~/.sh_history' (this is the default
|
||||
11. The default history file is '~/.sh_history' (this is the default
|
||||
value of '$HISTFILE').
|
||||
|
||||
11. Redirection operators do not perform filename expansion on the
|
||||
12. Redirection operators do not perform filename expansion on the
|
||||
word in the redirection unless the shell is interactive.
|
||||
|
||||
12. Redirection operators do not perform word splitting on the word in
|
||||
13. Redirection operators do not perform word splitting on the word in
|
||||
the redirection.
|
||||
|
||||
13. Function names must be valid shell 'name's. That is, they may not
|
||||
14. Function names must be valid shell 'name's. That is, they may not
|
||||
contain characters other than letters, digits, and underscores, and
|
||||
may not start with a digit. Declaring a function with an invalid
|
||||
name causes a fatal syntax error in non-interactive shells.
|
||||
|
||||
14. Function names may not be the same as one of the POSIX special
|
||||
15. Function names may not be the same as one of the POSIX special
|
||||
builtins.
|
||||
|
||||
15. POSIX special builtins are found before shell functions during
|
||||
16. POSIX special builtins are found before shell functions during
|
||||
command lookup.
|
||||
|
||||
16. When printing shell function definitions (e.g., by 'type'), Bash
|
||||
17. When printing shell function definitions (e.g., by 'type'), Bash
|
||||
does not print the 'function' keyword.
|
||||
|
||||
17. Literal tildes that appear as the first character in elements of
|
||||
18. Literal tildes that appear as the first character in elements of
|
||||
the 'PATH' variable are not expanded as described above under *note
|
||||
Tilde Expansion::.
|
||||
|
||||
18. The 'time' reserved word may be used by itself as a command. When
|
||||
19. 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.
|
||||
|
||||
19. When parsing and expanding a ${...} expansion that appears within
|
||||
20. 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.
|
||||
|
||||
20. The parser does not recognize 'time' as a reserved word if the
|
||||
21. The parser does not recognize 'time' as a reserved word if the
|
||||
next token begins with a '-'.
|
||||
|
||||
21. The '!' character does not introduce history expansion within a
|
||||
22. The '!' character does not introduce history expansion within a
|
||||
double-quoted string, even if the 'histexpand' option is enabled.
|
||||
|
||||
22. If a POSIX special builtin returns an error status, a
|
||||
23. 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.
|
||||
|
||||
23. A non-interactive shell exits with an error status if a variable
|
||||
24. 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.
|
||||
|
||||
24. A non-interactive shell exits with an error status if a variable
|
||||
25. 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.
|
||||
|
||||
25. A non-interactive shell exits with an error status if the
|
||||
26. 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.
|
||||
|
||||
26. Non-interactive shells exit if FILENAME in '.' FILENAME is not
|
||||
27. Non-interactive shells exit if FILENAME in '.' FILENAME is not
|
||||
found.
|
||||
|
||||
27. Non-interactive shells exit if a syntax error in an arithmetic
|
||||
28. Non-interactive shells exit if a syntax error in an arithmetic
|
||||
expansion results in an invalid expression.
|
||||
|
||||
28. Non-interactive shells exit if a parameter expansion error occurs.
|
||||
29. Non-interactive shells exit if a parameter expansion error occurs.
|
||||
|
||||
29. Non-interactive shells exit if there is a syntax error in a script
|
||||
30. 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.
|
||||
|
||||
30. While variable indirection is available, it may not be applied to
|
||||
31. While variable indirection is available, it may not be applied to
|
||||
the '#' and '?' special parameters.
|
||||
|
||||
31. When expanding the '*' special parameter in a pattern context
|
||||
32. 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
|
||||
33. Assignment statements preceding POSIX special builtins persist in
|
||||
the shell environment after the builtin completes.
|
||||
|
||||
33. Assignment statements preceding shell function calls persist in
|
||||
34. 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.
|
||||
|
||||
34. The 'command' builtin does not prevent builtins that take
|
||||
35. 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'.
|
||||
|
||||
35. The 'bg' builtin uses the required format to describe each job
|
||||
36. 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.
|
||||
|
||||
36. The output of 'kill -l' prints all the signal names on a single
|
||||
37. The output of 'kill -l' prints all the signal names on a single
|
||||
line, separated by spaces, without the 'SIG' prefix.
|
||||
|
||||
37. The 'kill' builtin does not accept signal names with a 'SIG'
|
||||
38. The 'kill' builtin does not accept signal names with a 'SIG'
|
||||
prefix.
|
||||
|
||||
38. The 'export' and 'readonly' builtin commands display their output
|
||||
39. The 'export' and 'readonly' builtin commands display their output
|
||||
in the format required by POSIX.
|
||||
|
||||
39. The 'trap' builtin displays signal names without the leading
|
||||
40. The 'trap' builtin displays signal names without the leading
|
||||
'SIG'.
|
||||
|
||||
40. The 'trap' builtin doesn't check the first argument for a possible
|
||||
41. 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.
|
||||
|
||||
41. The '.' and 'source' builtins do not search the current directory
|
||||
42. The '.' and 'source' builtins do not search the current directory
|
||||
for the filename argument if it is not found by searching 'PATH'.
|
||||
|
||||
42. Enabling POSIX mode has the effect of setting the
|
||||
43. 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.
|
||||
|
||||
43. Enabling POSIX mode has the effect of setting the 'shift_verbose'
|
||||
44. Enabling POSIX mode has the effect of setting the 'shift_verbose'
|
||||
option, so numeric arguments to 'shift' that exceed the number of
|
||||
positional parameters will result in an error message.
|
||||
|
||||
44. When the 'alias' builtin displays alias definitions, it does not
|
||||
45. When the 'alias' builtin displays alias definitions, it does not
|
||||
display them with a leading 'alias ' unless the '-p' option is
|
||||
supplied.
|
||||
|
||||
45. When the 'set' builtin is invoked without options, it does not
|
||||
46. When the 'set' builtin is invoked without options, it does not
|
||||
display shell function names and definitions.
|
||||
|
||||
46. When the 'set' builtin is invoked without options, it displays
|
||||
47. 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.
|
||||
|
||||
47. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
|
||||
48. 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.
|
||||
|
||||
48. When the 'cd' builtin cannot change a directory because the length
|
||||
49. When the 'cd' builtin cannot change a directory because the length
|
||||
of the pathname constructed from '$PWD' and the directory name
|
||||
supplied as an argument exceeds PATH_MAX when all symbolic links
|
||||
are expanded, 'cd' will fail instead of attempting to use only the
|
||||
supplied directory name.
|
||||
|
||||
49. The 'pwd' builtin verifies that the value it prints is the same as
|
||||
50. 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.
|
||||
|
||||
50. When listing the history, the 'fc' builtin does not include an
|
||||
51. When listing the history, the 'fc' builtin does not include an
|
||||
indication of whether or not a history entry has been modified.
|
||||
|
||||
51. The default editor used by 'fc' is 'ed'.
|
||||
52. The default editor used by 'fc' is 'ed'.
|
||||
|
||||
52. The 'type' and 'command' builtins will not report a non-executable
|
||||
53. 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'.
|
||||
|
||||
53. The 'vi' editing mode will invoke the 'vi' editor directly when
|
||||
54. The 'vi' editing mode will invoke the 'vi' editor directly when
|
||||
the 'v' command is run, instead of checking '$VISUAL' and
|
||||
'$EDITOR'.
|
||||
|
||||
54. When the 'xpg_echo' option is enabled, Bash does not attempt to
|
||||
55. 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.
|
||||
|
||||
55. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
|
||||
56. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
|
||||
and '-f' options.
|
||||
|
||||
56. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
|
||||
57. 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.
|
||||
|
||||
57. The 'read' builtin may be interrupted by a signal for which a trap
|
||||
58. 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.
|
||||
|
||||
58. Bash removes an exited background process's status from the list
|
||||
59. 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
|
||||
@@ -11853,60 +11857,60 @@ Node: Directory Stack Builtins273821
|
||||
Node: Controlling the Prompt276789
|
||||
Node: The Restricted Shell279710
|
||||
Node: Bash POSIX Mode282192
|
||||
Node: Job Control293079
|
||||
Node: Job Control Basics293539
|
||||
Node: Job Control Builtins298503
|
||||
Node: Job Control Variables303649
|
||||
Node: Command Line Editing304805
|
||||
Node: Introduction and Notation306476
|
||||
Node: Readline Interaction308099
|
||||
Node: Readline Bare Essentials309290
|
||||
Node: Readline Movement Commands311073
|
||||
Node: Readline Killing Commands312033
|
||||
Node: Readline Arguments313951
|
||||
Node: Searching314995
|
||||
Node: Readline Init File317181
|
||||
Node: Readline Init File Syntax318440
|
||||
Node: Conditional Init Constructs338970
|
||||
Node: Sample Init File343166
|
||||
Node: Bindable Readline Commands346283
|
||||
Node: Commands For Moving347487
|
||||
Node: Commands For History349346
|
||||
Node: Commands For Text353641
|
||||
Node: Commands For Killing357029
|
||||
Node: Numeric Arguments359844
|
||||
Node: Commands For Completion360983
|
||||
Node: Keyboard Macros365174
|
||||
Node: Miscellaneous Commands365861
|
||||
Node: Readline vi Mode371814
|
||||
Node: Programmable Completion372721
|
||||
Node: Programmable Completion Builtins380501
|
||||
Node: A Programmable Completion Example391196
|
||||
Node: Using History Interactively396443
|
||||
Node: Bash History Facilities397127
|
||||
Node: Bash History Builtins400132
|
||||
Node: History Interaction404664
|
||||
Node: Event Designators408284
|
||||
Node: Word Designators409638
|
||||
Node: Modifiers411398
|
||||
Node: Installing Bash413209
|
||||
Node: Basic Installation414346
|
||||
Node: Compilers and Options417604
|
||||
Node: Compiling For Multiple Architectures418345
|
||||
Node: Installation Names420038
|
||||
Node: Specifying the System Type420856
|
||||
Node: Sharing Defaults421572
|
||||
Node: Operation Controls422245
|
||||
Node: Optional Features423203
|
||||
Node: Reporting Bugs433721
|
||||
Node: Major Differences From The Bourne Shell434915
|
||||
Node: GNU Free Documentation License451767
|
||||
Node: Indexes476944
|
||||
Node: Builtin Index477398
|
||||
Node: Reserved Word Index484225
|
||||
Node: Variable Index486673
|
||||
Node: Function Index502570
|
||||
Node: Concept Index516009
|
||||
Node: Job Control293254
|
||||
Node: Job Control Basics293714
|
||||
Node: Job Control Builtins298678
|
||||
Node: Job Control Variables303824
|
||||
Node: Command Line Editing304980
|
||||
Node: Introduction and Notation306651
|
||||
Node: Readline Interaction308274
|
||||
Node: Readline Bare Essentials309465
|
||||
Node: Readline Movement Commands311248
|
||||
Node: Readline Killing Commands312208
|
||||
Node: Readline Arguments314126
|
||||
Node: Searching315170
|
||||
Node: Readline Init File317356
|
||||
Node: Readline Init File Syntax318615
|
||||
Node: Conditional Init Constructs339145
|
||||
Node: Sample Init File343341
|
||||
Node: Bindable Readline Commands346458
|
||||
Node: Commands For Moving347662
|
||||
Node: Commands For History349521
|
||||
Node: Commands For Text353816
|
||||
Node: Commands For Killing357204
|
||||
Node: Numeric Arguments360019
|
||||
Node: Commands For Completion361158
|
||||
Node: Keyboard Macros365349
|
||||
Node: Miscellaneous Commands366036
|
||||
Node: Readline vi Mode371989
|
||||
Node: Programmable Completion372896
|
||||
Node: Programmable Completion Builtins380676
|
||||
Node: A Programmable Completion Example391371
|
||||
Node: Using History Interactively396618
|
||||
Node: Bash History Facilities397302
|
||||
Node: Bash History Builtins400307
|
||||
Node: History Interaction404839
|
||||
Node: Event Designators408459
|
||||
Node: Word Designators409813
|
||||
Node: Modifiers411573
|
||||
Node: Installing Bash413384
|
||||
Node: Basic Installation414521
|
||||
Node: Compilers and Options417779
|
||||
Node: Compiling For Multiple Architectures418520
|
||||
Node: Installation Names420213
|
||||
Node: Specifying the System Type421031
|
||||
Node: Sharing Defaults421747
|
||||
Node: Operation Controls422420
|
||||
Node: Optional Features423378
|
||||
Node: Reporting Bugs433896
|
||||
Node: Major Differences From The Bourne Shell435090
|
||||
Node: GNU Free Documentation License451942
|
||||
Node: Indexes477119
|
||||
Node: Builtin Index477573
|
||||
Node: Reserved Word Index484400
|
||||
Node: Variable Index486848
|
||||
Node: Function Index502745
|
||||
Node: Concept Index516184
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
Binary file not shown.
@@ -8905,6 +8905,10 @@ startup files.
|
||||
<code>$PATH</code> to find the new location. This is also available with
|
||||
‘<samp>shopt -s checkhash</samp>’.
|
||||
|
||||
</li><li> Bash will not insert a command without the execute bit set into the
|
||||
command hash table, even if it returns it as a (last-ditch) result
|
||||
from a <code>$PATH</code> search.
|
||||
|
||||
</li><li> The message printed by the job control code and builtins when a job
|
||||
exits with a non-zero status is ‘Done(status)’.
|
||||
|
||||
|
||||
+114
-110
@@ -6644,216 +6644,220 @@ startup files.
|
||||
re-search '$PATH' to find the new location. This is also available
|
||||
with 'shopt -s checkhash'.
|
||||
|
||||
3. The message printed by the job control code and builtins when a job
|
||||
exits with a non-zero status is 'Done(status)'.
|
||||
3. Bash will not insert a command without the execute bit set into the
|
||||
command hash table, even if it returns it as a (last-ditch) result
|
||||
from a '$PATH' search.
|
||||
|
||||
4. The message printed by the job control code and builtins when a job
|
||||
exits with a non-zero status is 'Done(status)'.
|
||||
|
||||
5. The message printed by the job control code and builtins when a job
|
||||
is stopped is 'Stopped(SIGNAME)', where SIGNAME is, for example,
|
||||
'SIGTSTP'.
|
||||
|
||||
5. Alias expansion is always enabled, even in non-interactive shells.
|
||||
6. Alias expansion is always enabled, even in non-interactive shells.
|
||||
|
||||
6. Reserved words appearing in a context where reserved words are
|
||||
7. Reserved words appearing in a context where reserved words are
|
||||
recognized do not undergo alias expansion.
|
||||
|
||||
7. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
|
||||
8. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
|
||||
and '!!' to '!' are enabled, and parameter expansion is performed
|
||||
on the values of 'PS1' and 'PS2' regardless of the setting of the
|
||||
'promptvars' option.
|
||||
|
||||
8. The POSIX startup files are executed ('$ENV') rather than the
|
||||
9. The POSIX startup files are executed ('$ENV') rather than the
|
||||
normal Bash files.
|
||||
|
||||
9. Tilde expansion is only performed on assignments preceding a
|
||||
10. Tilde expansion is only performed on assignments preceding a
|
||||
command name, rather than on all assignment statements on the line.
|
||||
|
||||
10. The default history file is '~/.sh_history' (this is the default
|
||||
11. The default history file is '~/.sh_history' (this is the default
|
||||
value of '$HISTFILE').
|
||||
|
||||
11. Redirection operators do not perform filename expansion on the
|
||||
12. Redirection operators do not perform filename expansion on the
|
||||
word in the redirection unless the shell is interactive.
|
||||
|
||||
12. Redirection operators do not perform word splitting on the word in
|
||||
13. Redirection operators do not perform word splitting on the word in
|
||||
the redirection.
|
||||
|
||||
13. Function names must be valid shell 'name's. That is, they may not
|
||||
14. Function names must be valid shell 'name's. That is, they may not
|
||||
contain characters other than letters, digits, and underscores, and
|
||||
may not start with a digit. Declaring a function with an invalid
|
||||
name causes a fatal syntax error in non-interactive shells.
|
||||
|
||||
14. Function names may not be the same as one of the POSIX special
|
||||
15. Function names may not be the same as one of the POSIX special
|
||||
builtins.
|
||||
|
||||
15. POSIX special builtins are found before shell functions during
|
||||
16. POSIX special builtins are found before shell functions during
|
||||
command lookup.
|
||||
|
||||
16. When printing shell function definitions (e.g., by 'type'), Bash
|
||||
17. When printing shell function definitions (e.g., by 'type'), Bash
|
||||
does not print the 'function' keyword.
|
||||
|
||||
17. Literal tildes that appear as the first character in elements of
|
||||
18. Literal tildes that appear as the first character in elements of
|
||||
the 'PATH' variable are not expanded as described above under *note
|
||||
Tilde Expansion::.
|
||||
|
||||
18. The 'time' reserved word may be used by itself as a command. When
|
||||
19. 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.
|
||||
|
||||
19. When parsing and expanding a ${...} expansion that appears within
|
||||
20. 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.
|
||||
|
||||
20. The parser does not recognize 'time' as a reserved word if the
|
||||
21. The parser does not recognize 'time' as a reserved word if the
|
||||
next token begins with a '-'.
|
||||
|
||||
21. The '!' character does not introduce history expansion within a
|
||||
22. The '!' character does not introduce history expansion within a
|
||||
double-quoted string, even if the 'histexpand' option is enabled.
|
||||
|
||||
22. If a POSIX special builtin returns an error status, a
|
||||
23. 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.
|
||||
|
||||
23. A non-interactive shell exits with an error status if a variable
|
||||
24. 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.
|
||||
|
||||
24. A non-interactive shell exits with an error status if a variable
|
||||
25. 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.
|
||||
|
||||
25. A non-interactive shell exits with an error status if the
|
||||
26. 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.
|
||||
|
||||
26. Non-interactive shells exit if FILENAME in '.' FILENAME is not
|
||||
27. Non-interactive shells exit if FILENAME in '.' FILENAME is not
|
||||
found.
|
||||
|
||||
27. Non-interactive shells exit if a syntax error in an arithmetic
|
||||
28. Non-interactive shells exit if a syntax error in an arithmetic
|
||||
expansion results in an invalid expression.
|
||||
|
||||
28. Non-interactive shells exit if a parameter expansion error occurs.
|
||||
29. Non-interactive shells exit if a parameter expansion error occurs.
|
||||
|
||||
29. Non-interactive shells exit if there is a syntax error in a script
|
||||
30. 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.
|
||||
|
||||
30. While variable indirection is available, it may not be applied to
|
||||
31. While variable indirection is available, it may not be applied to
|
||||
the '#' and '?' special parameters.
|
||||
|
||||
31. When expanding the '*' special parameter in a pattern context
|
||||
32. 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
|
||||
33. Assignment statements preceding POSIX special builtins persist in
|
||||
the shell environment after the builtin completes.
|
||||
|
||||
33. Assignment statements preceding shell function calls persist in
|
||||
34. 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.
|
||||
|
||||
34. The 'command' builtin does not prevent builtins that take
|
||||
35. 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'.
|
||||
|
||||
35. The 'bg' builtin uses the required format to describe each job
|
||||
36. 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.
|
||||
|
||||
36. The output of 'kill -l' prints all the signal names on a single
|
||||
37. The output of 'kill -l' prints all the signal names on a single
|
||||
line, separated by spaces, without the 'SIG' prefix.
|
||||
|
||||
37. The 'kill' builtin does not accept signal names with a 'SIG'
|
||||
38. The 'kill' builtin does not accept signal names with a 'SIG'
|
||||
prefix.
|
||||
|
||||
38. The 'export' and 'readonly' builtin commands display their output
|
||||
39. The 'export' and 'readonly' builtin commands display their output
|
||||
in the format required by POSIX.
|
||||
|
||||
39. The 'trap' builtin displays signal names without the leading
|
||||
40. The 'trap' builtin displays signal names without the leading
|
||||
'SIG'.
|
||||
|
||||
40. The 'trap' builtin doesn't check the first argument for a possible
|
||||
41. 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.
|
||||
|
||||
41. The '.' and 'source' builtins do not search the current directory
|
||||
42. The '.' and 'source' builtins do not search the current directory
|
||||
for the filename argument if it is not found by searching 'PATH'.
|
||||
|
||||
42. Enabling POSIX mode has the effect of setting the
|
||||
43. 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.
|
||||
|
||||
43. Enabling POSIX mode has the effect of setting the 'shift_verbose'
|
||||
44. Enabling POSIX mode has the effect of setting the 'shift_verbose'
|
||||
option, so numeric arguments to 'shift' that exceed the number of
|
||||
positional parameters will result in an error message.
|
||||
|
||||
44. When the 'alias' builtin displays alias definitions, it does not
|
||||
45. When the 'alias' builtin displays alias definitions, it does not
|
||||
display them with a leading 'alias ' unless the '-p' option is
|
||||
supplied.
|
||||
|
||||
45. When the 'set' builtin is invoked without options, it does not
|
||||
46. When the 'set' builtin is invoked without options, it does not
|
||||
display shell function names and definitions.
|
||||
|
||||
46. When the 'set' builtin is invoked without options, it displays
|
||||
47. 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.
|
||||
|
||||
47. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
|
||||
48. 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.
|
||||
|
||||
48. When the 'cd' builtin cannot change a directory because the length
|
||||
49. When the 'cd' builtin cannot change a directory because the length
|
||||
of the pathname constructed from '$PWD' and the directory name
|
||||
supplied as an argument exceeds PATH_MAX when all symbolic links
|
||||
are expanded, 'cd' will fail instead of attempting to use only the
|
||||
supplied directory name.
|
||||
|
||||
49. The 'pwd' builtin verifies that the value it prints is the same as
|
||||
50. 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.
|
||||
|
||||
50. When listing the history, the 'fc' builtin does not include an
|
||||
51. When listing the history, the 'fc' builtin does not include an
|
||||
indication of whether or not a history entry has been modified.
|
||||
|
||||
51. The default editor used by 'fc' is 'ed'.
|
||||
52. The default editor used by 'fc' is 'ed'.
|
||||
|
||||
52. The 'type' and 'command' builtins will not report a non-executable
|
||||
53. 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'.
|
||||
|
||||
53. The 'vi' editing mode will invoke the 'vi' editor directly when
|
||||
54. The 'vi' editing mode will invoke the 'vi' editor directly when
|
||||
the 'v' command is run, instead of checking '$VISUAL' and
|
||||
'$EDITOR'.
|
||||
|
||||
54. When the 'xpg_echo' option is enabled, Bash does not attempt to
|
||||
55. 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.
|
||||
|
||||
55. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
|
||||
56. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
|
||||
and '-f' options.
|
||||
|
||||
56. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
|
||||
57. 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.
|
||||
|
||||
57. The 'read' builtin may be interrupted by a signal for which a trap
|
||||
58. 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.
|
||||
|
||||
58. Bash removes an exited background process's status from the list
|
||||
59. 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
|
||||
@@ -11853,60 +11857,60 @@ Node: Directory Stack Builtins273821
|
||||
Node: Controlling the Prompt276789
|
||||
Node: The Restricted Shell279710
|
||||
Node: Bash POSIX Mode282192
|
||||
Node: Job Control293079
|
||||
Node: Job Control Basics293539
|
||||
Node: Job Control Builtins298503
|
||||
Node: Job Control Variables303649
|
||||
Node: Command Line Editing304805
|
||||
Node: Introduction and Notation306476
|
||||
Node: Readline Interaction308099
|
||||
Node: Readline Bare Essentials309290
|
||||
Node: Readline Movement Commands311073
|
||||
Node: Readline Killing Commands312033
|
||||
Node: Readline Arguments313951
|
||||
Node: Searching314995
|
||||
Node: Readline Init File317181
|
||||
Node: Readline Init File Syntax318440
|
||||
Node: Conditional Init Constructs338970
|
||||
Node: Sample Init File343166
|
||||
Node: Bindable Readline Commands346283
|
||||
Node: Commands For Moving347487
|
||||
Node: Commands For History349346
|
||||
Node: Commands For Text353641
|
||||
Node: Commands For Killing357029
|
||||
Node: Numeric Arguments359844
|
||||
Node: Commands For Completion360983
|
||||
Node: Keyboard Macros365174
|
||||
Node: Miscellaneous Commands365861
|
||||
Node: Readline vi Mode371814
|
||||
Node: Programmable Completion372721
|
||||
Node: Programmable Completion Builtins380501
|
||||
Node: A Programmable Completion Example391196
|
||||
Node: Using History Interactively396443
|
||||
Node: Bash History Facilities397127
|
||||
Node: Bash History Builtins400132
|
||||
Node: History Interaction404664
|
||||
Node: Event Designators408284
|
||||
Node: Word Designators409638
|
||||
Node: Modifiers411398
|
||||
Node: Installing Bash413209
|
||||
Node: Basic Installation414346
|
||||
Node: Compilers and Options417604
|
||||
Node: Compiling For Multiple Architectures418345
|
||||
Node: Installation Names420038
|
||||
Node: Specifying the System Type420856
|
||||
Node: Sharing Defaults421572
|
||||
Node: Operation Controls422245
|
||||
Node: Optional Features423203
|
||||
Node: Reporting Bugs433721
|
||||
Node: Major Differences From The Bourne Shell434915
|
||||
Node: GNU Free Documentation License451767
|
||||
Node: Indexes476944
|
||||
Node: Builtin Index477398
|
||||
Node: Reserved Word Index484225
|
||||
Node: Variable Index486673
|
||||
Node: Function Index502570
|
||||
Node: Concept Index516009
|
||||
Node: Job Control293254
|
||||
Node: Job Control Basics293714
|
||||
Node: Job Control Builtins298678
|
||||
Node: Job Control Variables303824
|
||||
Node: Command Line Editing304980
|
||||
Node: Introduction and Notation306651
|
||||
Node: Readline Interaction308274
|
||||
Node: Readline Bare Essentials309465
|
||||
Node: Readline Movement Commands311248
|
||||
Node: Readline Killing Commands312208
|
||||
Node: Readline Arguments314126
|
||||
Node: Searching315170
|
||||
Node: Readline Init File317356
|
||||
Node: Readline Init File Syntax318615
|
||||
Node: Conditional Init Constructs339145
|
||||
Node: Sample Init File343341
|
||||
Node: Bindable Readline Commands346458
|
||||
Node: Commands For Moving347662
|
||||
Node: Commands For History349521
|
||||
Node: Commands For Text353816
|
||||
Node: Commands For Killing357204
|
||||
Node: Numeric Arguments360019
|
||||
Node: Commands For Completion361158
|
||||
Node: Keyboard Macros365349
|
||||
Node: Miscellaneous Commands366036
|
||||
Node: Readline vi Mode371989
|
||||
Node: Programmable Completion372896
|
||||
Node: Programmable Completion Builtins380676
|
||||
Node: A Programmable Completion Example391371
|
||||
Node: Using History Interactively396618
|
||||
Node: Bash History Facilities397302
|
||||
Node: Bash History Builtins400307
|
||||
Node: History Interaction404839
|
||||
Node: Event Designators408459
|
||||
Node: Word Designators409813
|
||||
Node: Modifiers411573
|
||||
Node: Installing Bash413384
|
||||
Node: Basic Installation414521
|
||||
Node: Compilers and Options417779
|
||||
Node: Compiling For Multiple Architectures418520
|
||||
Node: Installation Names420213
|
||||
Node: Specifying the System Type421031
|
||||
Node: Sharing Defaults421747
|
||||
Node: Operation Controls422420
|
||||
Node: Optional Features423378
|
||||
Node: Reporting Bugs433896
|
||||
Node: Major Differences From The Bourne Shell435090
|
||||
Node: GNU Free Documentation License451942
|
||||
Node: Indexes477119
|
||||
Node: Builtin Index477573
|
||||
Node: Reserved Word Index484400
|
||||
Node: Variable Index486848
|
||||
Node: Function Index502745
|
||||
Node: Concept Index516184
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
+9
-33
@@ -1,4 +1,4 @@
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/MacPorts 2019.50896_1) (preloaded format=pdfetex 2019.11.6) 29 JAN 2020 14:04
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/MacPorts 2019.50896_2) (preloaded format=etex 2019.11.6) 11 MAR 2020 16:16
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
file:line:error style messages enabled.
|
||||
@@ -161,10 +161,8 @@ 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
|
||||
(/Users/chet/src/bash/src/doc/version.texi) [1] [2]
|
||||
(/Users/chet/src/bash/src/doc/bashref.toc [-1] [-2] [-3]) [-4] Chapter 1
|
||||
\openout0 = `bashref.toc'.
|
||||
|
||||
|
||||
@@ -271,34 +269,12 @@ texinfo.tex: doing @include of fdl.texi
|
||||
[167] [168] [169] [170] [171]) Appendix D [172] [173] [174] [175] [176]
|
||||
[177] [178] [179] [180] [181] )
|
||||
Here is how much of TeX's memory you used:
|
||||
4069 strings out of 497098
|
||||
47090 string characters out of 6206772
|
||||
137494 words of memory out of 5000000
|
||||
4848 multiletter control sequences out of 15000+600000
|
||||
3518 strings out of 497108
|
||||
39930 string characters out of 6207178
|
||||
86574 words of memory out of 5000000
|
||||
4683 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,339b,968s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
{/opt/local/share/texmf-texlive/fonts/enc/dvips/
|
||||
cm-super/cm-super-t1.enc}</opt/local/share/texmf-texlive/fonts/type1/public/ams
|
||||
fonts/cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts
|
||||
/cm/cmcsc10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/
|
||||
cmmi10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi1
|
||||
2.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/s
|
||||
hare/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb></opt/local/share/
|
||||
texmf-texlive/fonts/type1/public/amsfonts/cm/cmsltt10.pfb></opt/local/share/tex
|
||||
mf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></opt/local/share/texmf-te
|
||||
xlive/fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-texlive
|
||||
/fonts/type1/public/amsfonts/cm/cmtt10.pfb></opt/local/share/texmf-texlive/font
|
||||
s/type1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texlive/fonts/typ
|
||||
e1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
|
||||
lic/cm-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm
|
||||
-super/sfrm1440.pfb>
|
||||
Output written on bashref.pdf (187 pages, 759734 bytes).
|
||||
PDF statistics:
|
||||
2646 PDF objects out of 2984 (max. 8388607)
|
||||
2413 compressed objects within 25 object streams
|
||||
313 named destinations out of 1000 (max. 500000)
|
||||
1125 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
16i,6n,16p,339b,936s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
|
||||
Output written on bashref.dvi (187 pages, 775840 bytes).
|
||||
|
||||
+84
-80
@@ -1,7 +1,7 @@
|
||||
%!PS-Adobe-2.0
|
||||
%%Creator: dvips(k) 5.999 Copyright 2019 Radical Eye Software
|
||||
%%Title: bashref.dvi
|
||||
%%CreationDate: Wed Jan 29 19:04:22 2020
|
||||
%%CreationDate: Wed Mar 11 20:16:46 2020
|
||||
%%Pages: 187
|
||||
%%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 2020.01.29:1404
|
||||
%DVIPSSource: TeX output 2020.03.11:1616
|
||||
%%BeginProcSet: tex.pro 0 0
|
||||
%!
|
||||
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
|
||||
@@ -15428,78 +15428,82 @@ Ft(shopt)f(-s)h(checkhash)p Fu('.)p eop end
|
||||
%%Page: 101 107
|
||||
TeXDict begin 101 106 bop 150 -116 a Fu(Chapter)30 b(6:)41
|
||||
b(Bash)30 b(F)-8 b(eatures)2439 b(101)199 299 y(3.)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
|
||||
408 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
|
||||
553 y(4.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)m
|
||||
b(Bash)36 b(will)g(not)g(insert)g(a)g(command)f(without)h(the)g
|
||||
(execute)h(bit)f(set)g(in)m(to)h(the)f(command)g(hash)330
|
||||
408 y(table,)c(ev)m(en)f(if)f(it)h(returns)e(it)i(as)g(a)f(\(last-ditc)
|
||||
m(h\))j(result)d(from)g(a)h Ft($PATH)e Fu(searc)m(h.)199
|
||||
540 y(4.)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 650 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
|
||||
781 y(5.)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 662 y(`Stopp)s(ed\()p Fr(signame)5 b Fu(\)',)31
|
||||
(is)330 891 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 806 y(5.)61 b(Alias)31 b(expansion)g(is)f(alw)m
|
||||
Ft(SIGTSTP)p Fu(.)199 1022 y(6.)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
|
||||
951 y(6.)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 1060 y(undergo)30 b(alias)h(expansion.)199 1204 y(7.)61
|
||||
1154 y(7.)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 1263 y(undergo)30 b(alias)h(expansion.)199 1395 y(8.)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 1314 y(enabled,)26
|
||||
Ft(!!)p Fu(')h(to)g(`)p Ft(!)p Fu(')h(are)330 1504 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
|
||||
1424 y(of)31 b(the)f(setting)i(of)e(the)h Ft(promptvars)c
|
||||
Fu(option.)199 1568 y(8.)61 b(The)30 b Fm(posix)g Fu(startup)f(\014les)
|
||||
1614 y(of)31 b(the)f(setting)i(of)e(the)h Ft(promptvars)c
|
||||
Fu(option.)199 1745 y(9.)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 1712 y(9.)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 1822 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
|
||||
(on)e(the)h(line.)154 1966 y(10.)61 b(The)30 b(default)g(history)h
|
||||
f(Bash)g(\014les.)154 1877 y(10.)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 1987 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
|
||||
(on)e(the)h(line.)154 2118 y(11.)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 2110
|
||||
y(11.)61 b(Redirection)25 b(op)s(erators)f(do)g(not)g(p)s(erform)f
|
||||
g(v)-5 b(alue)30 b(of)h Ft($HISTFILE)p Fu(\).)154 2250
|
||||
y(12.)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 2220 y(unless)30 b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
|
||||
2364 y(12.)61 b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e
|
||||
330 2359 y(unless)30 b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
|
||||
2491 y(13.)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
|
||||
2508 y(13.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5
|
||||
2622 y(14.)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 2618 y(other)e(than)g(letters,)h
|
||||
g(not)g(con)m(tain)g(c)m(haracters)330 2732 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 2727 y(a)31 b(function)f(with)g(an)g(in)m(v)
|
||||
(digit.)49 b(Declaring)330 2841 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 2871 y(14.)61 b(F)-8
|
||||
(non-in)m(teractiv)m(e)j(shells.)154 2973 y(15.)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
|
||||
3016 y(15.)61 b Fm(posix)30 b Fu(sp)s(ecial)h(builtins)e(are)i(found)e
|
||||
3104 y(16.)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
|
||||
3160 y(16.)61 b(When)48 b(prin)m(ting)g(shell)h(function)f
|
||||
3236 y(17.)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 3269 y Ft(function)28
|
||||
b Fu(k)m(eyw)m(ord.)154 3414 y(17.)61 b(Literal)28 b(tildes)g(that)f
|
||||
(es)f(not)h(prin)m(t)f(the)330 3345 y Ft(function)28
|
||||
b Fu(k)m(eyw)m(ord.)154 3477 y(18.)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
|
||||
3523 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(24.)154 3667
|
||||
y(18.)61 b(The)29 b Ft(time)g Fu(reserv)m(ed)h(w)m(ord)g(ma)m(y)g(b)s
|
||||
3587 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(24.)154 3718
|
||||
y(19.)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 3777 y(it)33
|
||||
b(used)f(in)g(this)h(w)m(a)m(y)-8 b(,)330 3828 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
|
||||
3886 y Fu(v)-5 b(ariable)31 b(con)m(trols)h(the)e(format)h(of)g(the)f
|
||||
(timing)h(information.)154 4031 y(19.)61 b(When)33 b(parsing)g(and)f
|
||||
3937 y Fu(v)-5 b(ariable)31 b(con)m(trols)h(the)e(format)h(of)g(the)f
|
||||
(timing)h(information.)154 4069 y(20.)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
|
||||
4140 y(single)42 b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f
|
||||
4178 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
|
||||
4250 y(other)31 b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s
|
||||
4288 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 4359 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they)
|
||||
(pattern)330 4398 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
|
||||
4504 y(20.)61 b(The)29 b(parser)g(do)s(es)g(not)h(recognize)h
|
||||
4529 y(21.)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 4613 y(`)p Ft(-)p Fu('.)154
|
||||
4757 y(21.)61 b(The)30 b(`)p Ft(!)p Fu(')h(c)m(haracter)h(do)s(es)e
|
||||
(en)h(b)s(egins)d(with)i(a)330 4639 y(`)p Ft(-)p Fu('.)154
|
||||
4770 y(22.)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 4867 y(ev)m(en)g(if)f(the)h
|
||||
Ft(histexpand)d Fu(option)i(is)h(enabled.)154 5011 y(22.)61
|
||||
(double-quoted)g(string,)330 4880 y(ev)m(en)g(if)f(the)h
|
||||
Ft(histexpand)d Fu(option)i(is)h(enabled.)154 5011 y(23.)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 5121 y(errors)30 b(are)h(those)f(listed)h(in)f
|
||||
@@ -15510,73 +15514,73 @@ b(The)24 b(fatal)330 5121 y(errors)30 b(are)h(those)f(listed)h(in)f
|
||||
eop end
|
||||
%%Page: 102 108
|
||||
TeXDict begin 102 107 bop 150 -116 a Fu(Chapter)30 b(6:)41
|
||||
b(Bash)30 b(F)-8 b(eatures)2439 b(102)154 299 y(23.)61
|
||||
b(Bash)30 b(F)-8 b(eatures)2439 b(102)154 299 y(24.)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 408 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 518 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 656 y(24.)61 b(A)31 b(non-in)m(teractiv)m(e)j
|
||||
(v)-5 b(ariable.)154 656 y(25.)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
|
||||
766 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
|
||||
876 y(command.)154 1014 y(25.)61 b(A)43 b(non-in)m(teractiv)m(e)i
|
||||
876 y(command.)154 1014 y(26.)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 1124 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 1262 y(26.)61 b(Non-in)m(teractiv)m(e)34
|
||||
b(ariable.)154 1262 y(27.)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 1401 y(27.)61
|
||||
Fr(\014lename)36 b Fu(is)31 b(not)f(found.)154 1401 y(28.)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
|
||||
1510 y(in)m(v)-5 b(alid)31 b(expression.)154 1649 y(28.)61
|
||||
1510 y(in)m(v)-5 b(alid)31 b(expression.)154 1649 y(29.)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 1787 y(29.)61 b(Non-in)m(teractiv)m
|
||||
(expansion)g(error)f(o)s(ccurs.)154 1787 y(30.)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
|
||||
1897 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 2035 y(30.)61 b(While)32
|
||||
(the)f Ft(eval)f Fu(builtin.)154 2035 y(31.)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
|
||||
2145 y(parameters.)154 2283 y(31.)61 b(When)28 b(expanding)g(the)g(`)p
|
||||
2145 y(parameters.)154 2283 y(32.)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 2393 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
|
||||
2531 y(32.)61 b(Assignmen)m(t)23 b(statemen)m(ts)h(preceding)e
|
||||
2531 y(33.)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 2641 y(after)31 b(the)f(builtin)g(completes.)154
|
||||
2779 y(33.)61 b(Assignmen)m(t)35 b(statemen)m(ts)h(preceding)f(shell)f
|
||||
2779 y(34.)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 2889 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 3027 y(34.)61 b(The)31 b Ft(command)e
|
||||
(executed.)154 3027 y(35.)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 3137 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 3246
|
||||
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 3356
|
||||
y(ceded)31 b(b)m(y)f Ft(command)p Fu(.)154 3494 y(35.)61
|
||||
y(ceded)31 b(b)m(y)f Ft(command)p Fu(.)154 3494 y(36.)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
|
||||
3604 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
|
||||
3742 y(36.)61 b(The)23 b(output)f(of)i(`)p Ft(kill)29
|
||||
3742 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 3852
|
||||
y(without)30 b(the)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
|
||||
3990 y(37.)61 b(The)30 b Ft(kill)f Fu(builtin)h(do)s(es)g(not)h(accept)
|
||||
3990 y(38.)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
|
||||
4129 y(38.)61 b(The)38 b Ft(export)f Fu(and)g Ft(readonly)f
|
||||
4129 y(39.)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 4238 y(quired)30 b(b)m(y)g Fm(posix)p
|
||||
Fu(.)154 4377 y(39.)61 b(The)30 b Ft(trap)f Fu(builtin)h(displa)m(ys)g
|
||||
Fu(.)154 4377 y(40.)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 4515 y(40.)61 b(The)39 b Ft(trap)e Fu(builtin)i(do)s(esn't)g
|
||||
Fu(.)154 4515 y(41.)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 4625 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
|
||||
@@ -15585,11 +15589,11 @@ Fu(.)154 4515 y(40.)61 b(The)39 b Ft(trap)e Fu(builtin)i(do)s(esn't)g
|
||||
b(If)28 b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330
|
||||
4844 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 4982 y(41.)61 b(The)21 b Ft(.)h Fu(and)f
|
||||
f(argumen)m(t.)154 4982 y(42.)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
|
||||
5092 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 5230 y(42.)61 b(Enabling)21 b Fm(posix)g
|
||||
Ft(PATH)p Fu(.)154 5230 y(43.)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
|
||||
5340 y(spa)m(wned)27 b(to)i(execute)g(command)e(substitutions)h
|
||||
@@ -15601,30 +15605,30 @@ b(Bash)30 b(F)-8 b(eatures)2439 b(103)330 299 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
|
||||
408 y Fu(option)31 b(in)f(suc)m(h)g(subshells.)154 542
|
||||
y(43.)61 b(Enabling)32 b Fm(posix)f Fu(mo)s(de)h(has)g(the)h(e\013ect)g
|
||||
y(44.)61 b(Enabling)32 b Fm(posix)f Fu(mo)s(de)h(has)g(the)h(e\013ect)g
|
||||
(of)g(setting)g(the)g Ft(shift_verbose)28 b Fu(option,)34
|
||||
b(so)e(n)m(umeric)330 652 y(argumen)m(ts)f(to)g Ft(shift)f
|
||||
Fu(that)h(exceed)h(the)e(n)m(um)m(b)s(er)g(of)h(p)s(ositional)g
|
||||
(parameters)g(will)g(result)g(in)f(an)330 762 y(error)g(message.)154
|
||||
896 y(44.)61 b(When)43 b(the)g Ft(alias)f Fu(builtin)g(displa)m(ys)i
|
||||
896 y(45.)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 1005 y(leading)31 b(`)p Ft(alias)e Fu(')i(unless)f(the)g
|
||||
Ft(-p)g Fu(option)h(is)f(supplied.)154 1139 y(45.)61
|
||||
Ft(-p)g Fu(option)h(is)f(supplied.)154 1139 y(46.)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 1249 y(names)30 b(and)g(de\014nitions.)154
|
||||
1383 y(46.)61 b(When)36 b(the)g Ft(set)g Fu(builtin)g(is)g(in)m(v)m(ok)
|
||||
1383 y(47.)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 1492 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 1602 y(c)m(haracters.)154
|
||||
1736 y(47.)61 b(When)35 b(the)g Ft(cd)f Fu(builtin)h(is)g(in)m(v)m(ok)m
|
||||
1736 y(48.)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 1845 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 1955 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 2089 y(48.)61 b(When)37
|
||||
Fr(ph)m(ysical)j Fu(mo)s(de.)154 2089 y(49.)61 b(When)37
|
||||
b(the)h Ft(cd)f Fu(builtin)g(cannot)h(c)m(hange)h(a)f(directory)g(b)s
|
||||
(ecause)g(the)g(length)g(of)f(the)h(pathname)330 2198
|
||||
y(constructed)52 b(from)f Ft($PWD)f Fu(and)g(the)i(directory)g(name)f
|
||||
@@ -15632,46 +15636,46 @@ y(constructed)52 b(from)f Ft($PWD)f Fu(and)g(the)i(directory)g(name)f
|
||||
y Fr(P)-8 b(A)g(TH)p 584 2308 28 4 v 41 w(MAX)42 b Fu(when)31
|
||||
b(all)j(sym)m(b)s(olic)e(links)h(are)f(expanded,)h Ft(cd)f
|
||||
Fu(will)g(fail)h(instead)g(of)g(attempting)330 2418 y(to)e(use)f(only)h
|
||||
(the)f(supplied)f(directory)i(name.)154 2552 y(49.)61
|
||||
(the)f(supplied)f(directory)i(name.)154 2552 y(50.)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 2661 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 2795 y(50.)61 b(When)35 b(listing)g(the)g
|
||||
Ft(-P)e Fu(option.)154 2795 y(51.)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 2905
|
||||
y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154
|
||||
3039 y(51.)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 3173 y(52.)61 b(The)37
|
||||
3039 y(52.)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 3173 y(53.)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
|
||||
3282 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 3392 y(found)i(in)h Ft($PATH)p Fu(.)154
|
||||
3526 y(53.)61 b(The)33 b Ft(vi)f Fu(editing)i(mo)s(de)f(will)g(in)m(v)m
|
||||
3526 y(54.)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 3635 y(instead)e(of)f(c)m(hec)m
|
||||
(king)i Ft($VISUAL)d Fu(and)g Ft($EDITOR)p Fu(.)154 3769
|
||||
y(54.)61 b(When)41 b(the)g Ft(xpg_echo)e Fu(option)i(is)g(enabled,)j
|
||||
y(55.)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
|
||||
3879 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 3988 y(con)m(v)m(erted.)154
|
||||
4122 y(55.)61 b(The)30 b Ft(ulimit)f Fu(builtin)g(uses)h(a)h(blo)s(c)m
|
||||
4122 y(56.)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 4256 y(56.)61 b(The)39
|
||||
Fu(and)g Ft(-f)f Fu(options.)154 4256 y(57.)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 4366 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 4475 y(c)m(hild)31 b(that)g(exits.)154
|
||||
4609 y(57.)61 b(The)27 b Ft(read)f Fu(builtin)g(ma)m(y)i(b)s(e)e(in)m
|
||||
4609 y(58.)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 4719 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
|
||||
4829 y Fu(returns)29 b(an)h(exit)i(status)e(greater)i(than)e(128.)154
|
||||
4963 y(58.)61 b(Bash)27 b(remo)m(v)m(es)h(an)e(exited)i(bac)m(kground)e
|
||||
4963 y(59.)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 5072 y(the)k Ft(wait)e Fu(builtin)h(is)g(used)g(to)h(obtain)
|
||||
g(it.)275 5230 y(There)j(is)g(other)h Fm(posix)f Fu(b)s(eha)m(vior)h
|
||||
|
||||
@@ -7175,6 +7175,11 @@ parameter_brace_expand_rhs (name, value, op, quoted, pflags, qdollaratp, hasdoll
|
||||
w->flags &= ~W_SAWQUOTEDNULL;
|
||||
free (t1);
|
||||
|
||||
/* If we convert a null string into a quoted null, make sure the caller
|
||||
knows it. */
|
||||
if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) && QUOTED_NULL (w->word))
|
||||
w->flags |= W_HASQUOTEDNULL;
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user