fix for EXIT trap in -c command; suspend -f now suspends even if job control is not enabled

This commit is contained in:
Chet Ramey
2022-05-18 09:50:42 -04:00
parent f9ed510acb
commit daff9ecae9
24 changed files with 8106 additions and 8115 deletions
+10
View File
@@ -3614,3 +3614,13 @@ builtins/evalstring.c
after any longjmp, to improve responsiveness and fix the -c code
path before running any exit trap. Report from
Emanuele Torre <torreemanuele6@gmail.com>
5/17
----
builtins/suspend.def
- suspend_builtin: the -f option now forces a suspend even if job
control is not enabled. Inspired by a discussion with
Robert Elz <kre@munnari.OZ.AU>
doc/{bash.1,bashref.texi}
- suspend: updated description to include expanded -f behavior
+1
View File
@@ -827,6 +827,7 @@ examples/functions/which f
#examples/scripts/adventure.sh f
#examples/scripts/bash-hexdump.sh f
#examples/scripts/bcsh.sh f
examples/scripts/bcalc f
examples/scripts/cat.sh f
examples/scripts/center f
#examples/scripts/dd-ex.sh f
+11 -10
View File
@@ -1,7 +1,7 @@
This file is suspend.def, from which is created suspend.c.
It implements the builtin "suspend" in Bash.
Copyright (C) 1987-2020 Free Software Foundation, Inc.
Copyright (C) 1987-2022 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -27,10 +27,12 @@ $SHORT_DOC suspend [-f]
Suspend shell execution.
Suspend the execution of this shell until it receives a SIGCONT signal.
Unless forced, login shells cannot be suspended.
Unless forced, login shells and shells without job control cannot be
suspended.
Options:
-f force the suspend, even if the shell is a login shell
-f force the suspend, even if the shell is a login shell or job
control is not enabled.
Exit Status:
Returns success unless job control is not enabled or an error occurs.
@@ -96,16 +98,15 @@ suspend_builtin (list)
}
list = loptend;
if (job_control == 0)
{
sh_nojobs (_("cannot suspend"));
return (EXECUTION_FAILURE);
}
no_args (list);
if (force == 0)
{
no_args (list);
if (job_control == 0)
{
sh_nojobs (_("cannot suspend"));
return (EXECUTION_FAILURE);
}
if (login_shell)
{
+1757 -1755
View File
File diff suppressed because it is too large Load Diff
+18 -11
View File
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Mon May 2 09:00:07 EDT 2022
.\" Last Change: Tue May 17 09:34:43 EDT 2022
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2022 May 2" "GNU Bash 5.2"
.TH BASH 1 "2022 May 17" "GNU Bash 5.2"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -420,12 +420,14 @@ No other startup files are read.
.PP
.B Bash
attempts to determine when it is being run with its standard input
connected to a network connection, as when executed by the remote shell
daemon, usually \fIrshd\fP, or the secure shell daemon \fIsshd\fP.
connected to a network connection, as when executed by
the historical remote shell daemon, usually \fIrshd\fP,
or the secure shell daemon \fIsshd\fP.
If
.B bash
determines it is being run in this fashion, it reads and executes
commands from \fI~/.bashrc\fP, if that file exists and is readable.
determines it is being run non-interactively in this fashion,
it reads and executes commands from \fI~/.bashrc\fP,
if that file exists and is readable.
It will not do this if invoked as \fBsh\fP.
The
.B \-\-norc
@@ -589,8 +591,9 @@ The
variable may be used to specify the format of
the time information.
.PP
Each command in a multi-command
pipeline is executed in a \fIsubshell\fP, which is a
Each command in a multi-command pipeline,
where pipes are created,
is executed in a \fIsubshell\fP, which is a
separate process.
See
.SM
@@ -10641,12 +10644,16 @@ by default.
Suspend the execution of this shell until it receives a
.SM
.B SIGCONT
signal. A login shell cannot be suspended; the
signal. A login shell,
or a shell without job control enabled,
cannot be suspended; the
.B \-f
option can be used to override this and force the suspension.
The return status is 0 unless the shell is a login shell and
The return status is 0 unless the shell is a login shell
or job control is not enabled
and
.B \-f
is not supplied, or if job control is not enabled.
is not supplied.
.TP
\fBtest\fP \fIexpr\fP
.PD 0
+9 -5
View File
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2022 March 11<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2022 May 2<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -787,7 +787,9 @@ variable may be used to specify the format of
the time information.
<P>
Each command in a pipeline is executed in a <I>subshell</I>, which is a
Each command in a multi-command pipeline,
where pipes are created,
is executed in a <I>subshell</I>, which is a
separate process.
See
<FONT SIZE=-1><B>COMMAND EXECUTION ENVIRONMENT</B></FONT>
@@ -4856,7 +4858,9 @@ or a
<B>^</B>
then any character not enclosed is matched.
The sorting order of characters in range expressions is determined by
The sorting order of characters in range expressions,
and the characters included in the range,
are determined by
the current locale and the values of the
<FONT SIZE=-1><B>LC_COLLATE</B>
@@ -14677,7 +14681,7 @@ There may be only one active coprocess at a time.
<HR>
<TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>GNU Bash 5.2<TH ALIGN=CENTER width=33%>2022 March 11<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>GNU Bash 5.2<TH ALIGN=CENTER width=33%>2022 May 2<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -14784,6 +14788,6 @@ There may be only one active coprocess at a time.
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
Time: 08 April 2022 15:46:17 EDT
Time: 04 May 2022 15:11:14 EDT
</BODY>
</HTML>
+146 -144
View File
@@ -1,9 +1,9 @@
This is bash.info, produced by makeinfo version 6.8 from bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 11 April 2022).
Bash shell (version 5.2, 2 May 2022).
This is Edition 5.2, last updated 11 April 2022, of 'The GNU Bash
This is Edition 5.2, last updated 2 May 2022, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Copyright (C) 1988-2022 Free Software Foundation, Inc.
@@ -26,10 +26,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 11 April 2022). The Bash home page is
Bash shell (version 5.2, 2 May 2022). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.2, last updated 11 April 2022, of 'The GNU Bash
This is Edition 5.2, last updated 2 May 2022, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Bash contains features that appear in other popular shells, and some
@@ -704,11 +704,12 @@ information.
If the pipeline is not executed asynchronously (*note Lists::), the
shell waits for all commands in the pipeline to complete.
Each command in a pipeline is executed in its own "subshell", which
is a separate process (*note Command Execution Environment::). If the
'lastpipe' option is enabled using the 'shopt' builtin (*note The Shopt
Builtin::), the last element of a pipeline may be run by the shell
process when job control is not active.
Each command in a multi-command pipeline, where pipes are created, is
executed in its own "subshell", which is a separate process (*note
Command Execution Environment::). If the 'lastpipe' option is enabled
using the 'shopt' builtin (*note The Shopt Builtin::), the last element
of a pipeline may be run by the shell process when job control is not
active.
The exit status of a pipeline is the exit status of the last command
in the pipeline, unless the 'pipefail' option is enabled (*note The Set
@@ -2431,9 +2432,10 @@ characters must be quoted if they are to be matched literally.
character not enclosed is matched. A '-' may be matched by
including it as the first or last character in the set. A ']' may
be matched by including it as the first character in the set. The
sorting order of characters in range expressions is determined by
the current locale and the values of the 'LC_COLLATE' and 'LC_ALL'
shell variables, if set.
sorting order of characters in range expressions, and the
characters included in the range, are determined by the current
locale and the values of the 'LC_COLLATE' and 'LC_ALL' shell
variables, if set.
For example, in the default C locale, '[a-dx-z]' is equivalent to
'[abcdxyz]'. Many locales sort characters in dictionary order, and
@@ -12499,138 +12501,138 @@ D.5 Concept Index

Tag Table:
Node: Top888
Node: Introduction2799
Node: What is Bash?3012
Node: What is a shell?4123
Node: Definitions6658
Node: Basic Shell Features9606
Node: Shell Syntax10822
Node: Shell Operation11845
Node: Quoting13135
Node: Escape Character14436
Node: Single Quotes14918
Node: Double Quotes15263
Node: ANSI-C Quoting16538
Node: Locale Translation17845
Node: Creating Internationalized Scripts19153
Node: Comments23267
Node: Shell Commands23882
Node: Reserved Words24817
Node: Simple Commands25570
Node: Pipelines26221
Node: Lists29177
Node: Compound Commands30969
Node: Looping Constructs31978
Node: Conditional Constructs34470
Node: Command Grouping48811
Node: Coprocesses50286
Node: GNU Parallel52946
Node: Shell Functions53860
Node: Shell Parameters61742
Node: Positional Parameters66127
Node: Special Parameters67026
Node: Shell Expansions70237
Node: Brace Expansion72361
Node: Tilde Expansion75092
Node: Shell Parameter Expansion77710
Node: Command Substitution96058
Node: Arithmetic Expansion97410
Node: Process Substitution98375
Node: Word Splitting99492
Node: Filename Expansion101433
Node: Pattern Matching104179
Node: Quote Removal108784
Node: Redirections109076
Node: Executing Commands118733
Node: Simple Command Expansion119400
Node: Command Search and Execution121507
Node: Command Execution Environment123882
Node: Environment126914
Node: Exit Status128574
Node: Signals130355
Node: Shell Scripts133801
Node: Shell Builtin Commands136825
Node: Bourne Shell Builtins138860
Node: Bash Builtins160318
Node: Modifying Shell Behavior191171
Node: The Set Builtin191513
Node: The Shopt Builtin202111
Node: Special Builtins218020
Node: Shell Variables218996
Node: Bourne Shell Variables219430
Node: Bash Variables221531
Node: Bash Features254344
Node: Invoking Bash255354
Node: Bash Startup Files261364
Node: Interactive Shells266464
Node: What is an Interactive Shell?266871
Node: Is this Shell Interactive?267517
Node: Interactive Shell Behavior268329
Node: Bash Conditional Expressions271955
Node: Shell Arithmetic276594
Node: Aliases279535
Node: Arrays282145
Node: The Directory Stack288533
Node: Directory Stack Builtins289314
Node: Controlling the Prompt293571
Node: The Restricted Shell296533
Node: Bash POSIX Mode299140
Node: Shell Compatibility Mode311061
Node: Job Control319087
Node: Job Control Basics319544
Node: Job Control Builtins324543
Node: Job Control Variables329940
Node: Command Line Editing331093
Node: Introduction and Notation332761
Node: Readline Interaction334381
Node: Readline Bare Essentials335569
Node: Readline Movement Commands337349
Node: Readline Killing Commands338306
Node: Readline Arguments340221
Node: Searching341262
Node: Readline Init File343445
Node: Readline Init File Syntax344703
Node: Conditional Init Constructs367899
Node: Sample Init File372092
Node: Bindable Readline Commands375213
Node: Commands For Moving376414
Node: Commands For History378462
Node: Commands For Text383453
Node: Commands For Killing387099
Node: Numeric Arguments390129
Node: Commands For Completion391265
Node: Keyboard Macros395453
Node: Miscellaneous Commands396137
Node: Readline vi Mode402073
Node: Programmable Completion402977
Node: Programmable Completion Builtins410754
Node: A Programmable Completion Example421446
Node: Using History Interactively426690
Node: Bash History Facilities427371
Node: Bash History Builtins430373
Node: History Interaction435378
Node: Event Designators438995
Node: Word Designators440346
Node: Modifiers442103
Node: Installing Bash443911
Node: Basic Installation445045
Node: Compilers and Options448764
Node: Compiling For Multiple Architectures449502
Node: Installation Names451192
Node: Specifying the System Type453298
Node: Sharing Defaults454011
Node: Operation Controls454681
Node: Optional Features455636
Node: Reporting Bugs466851
Node: Major Differences From The Bourne Shell468123
Node: GNU Free Documentation License484970
Node: Indexes510144
Node: Builtin Index510595
Node: Reserved Word Index517419
Node: Variable Index519864
Node: Function Index536635
Node: Concept Index550416
Node: Top882
Node: Introduction2787
Node: What is Bash?3000
Node: What is a shell?4111
Node: Definitions6646
Node: Basic Shell Features9594
Node: Shell Syntax10810
Node: Shell Operation11833
Node: Quoting13123
Node: Escape Character14424
Node: Single Quotes14906
Node: Double Quotes15251
Node: ANSI-C Quoting16526
Node: Locale Translation17833
Node: Creating Internationalized Scripts19141
Node: Comments23255
Node: Shell Commands23870
Node: Reserved Words24805
Node: Simple Commands25558
Node: Pipelines26209
Node: Lists29205
Node: Compound Commands30997
Node: Looping Constructs32006
Node: Conditional Constructs34498
Node: Command Grouping48839
Node: Coprocesses50314
Node: GNU Parallel52974
Node: Shell Functions53888
Node: Shell Parameters61770
Node: Positional Parameters66155
Node: Special Parameters67054
Node: Shell Expansions70265
Node: Brace Expansion72389
Node: Tilde Expansion75120
Node: Shell Parameter Expansion77738
Node: Command Substitution96086
Node: Arithmetic Expansion97438
Node: Process Substitution98403
Node: Word Splitting99520
Node: Filename Expansion101461
Node: Pattern Matching104207
Node: Quote Removal108861
Node: Redirections109153
Node: Executing Commands118810
Node: Simple Command Expansion119477
Node: Command Search and Execution121584
Node: Command Execution Environment123959
Node: Environment126991
Node: Exit Status128651
Node: Signals130432
Node: Shell Scripts133878
Node: Shell Builtin Commands136902
Node: Bourne Shell Builtins138937
Node: Bash Builtins160395
Node: Modifying Shell Behavior191248
Node: The Set Builtin191590
Node: The Shopt Builtin202188
Node: Special Builtins218097
Node: Shell Variables219073
Node: Bourne Shell Variables219507
Node: Bash Variables221608
Node: Bash Features254421
Node: Invoking Bash255431
Node: Bash Startup Files261441
Node: Interactive Shells266541
Node: What is an Interactive Shell?266948
Node: Is this Shell Interactive?267594
Node: Interactive Shell Behavior268406
Node: Bash Conditional Expressions272032
Node: Shell Arithmetic276671
Node: Aliases279612
Node: Arrays282222
Node: The Directory Stack288610
Node: Directory Stack Builtins289391
Node: Controlling the Prompt293648
Node: The Restricted Shell296610
Node: Bash POSIX Mode299217
Node: Shell Compatibility Mode311138
Node: Job Control319164
Node: Job Control Basics319621
Node: Job Control Builtins324620
Node: Job Control Variables330017
Node: Command Line Editing331170
Node: Introduction and Notation332838
Node: Readline Interaction334458
Node: Readline Bare Essentials335646
Node: Readline Movement Commands337426
Node: Readline Killing Commands338383
Node: Readline Arguments340298
Node: Searching341339
Node: Readline Init File343522
Node: Readline Init File Syntax344780
Node: Conditional Init Constructs367976
Node: Sample Init File372169
Node: Bindable Readline Commands375290
Node: Commands For Moving376491
Node: Commands For History378539
Node: Commands For Text383530
Node: Commands For Killing387176
Node: Numeric Arguments390206
Node: Commands For Completion391342
Node: Keyboard Macros395530
Node: Miscellaneous Commands396214
Node: Readline vi Mode402150
Node: Programmable Completion403054
Node: Programmable Completion Builtins410831
Node: A Programmable Completion Example421523
Node: Using History Interactively426767
Node: Bash History Facilities427448
Node: Bash History Builtins430450
Node: History Interaction435455
Node: Event Designators439072
Node: Word Designators440423
Node: Modifiers442180
Node: Installing Bash443988
Node: Basic Installation445122
Node: Compilers and Options448841
Node: Compiling For Multiple Architectures449579
Node: Installation Names451269
Node: Specifying the System Type453375
Node: Sharing Defaults454088
Node: Operation Controls454758
Node: Optional Features455713
Node: Reporting Bugs466928
Node: Major Differences From The Bourne Shell468200
Node: GNU Free Documentation License485047
Node: Indexes510221
Node: Builtin Index510672
Node: Reserved Word Index517496
Node: Variable Index519941
Node: Function Index536712
Node: Concept Index550493

End Tag Table
BIN
View File
Binary file not shown.
+5576 -5580
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+26 -12
View File
@@ -4,9 +4,9 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This text is a brief description of the features that are present in
the Bash shell (version 5.2, 11 April 2022).
the Bash shell (version 5.2, 17 May 2022).
This is Edition 5.2, last updated 11 April 2022,
This is Edition 5.2, last updated 17 May 2022,
of The GNU Bash Reference Manual,
for Bash, Version 5.2.
@@ -77,10 +77,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
<span id="Bash-Features-1"></span><h1 class="top">Bash Features</h1>
<p>This text is a brief description of the features that are present in
the Bash shell (version 5.2, 11 April 2022).
the Bash shell (version 5.2, 17 May 2022).
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 5.2, last updated 11 April 2022,
<p>This is Edition 5.2, last updated 17 May 2022,
of <cite>The GNU Bash Reference Manual</cite>,
for <code>Bash</code>, Version 5.2.
</p>
@@ -1104,7 +1104,9 @@ the time information.
<p>If the pipeline is not executed asynchronously (see <a href="#Lists">Lists of Commands</a>), the
shell waits for all commands in the pipeline to complete.
</p>
<p>Each command in a pipeline is executed in its own <em>subshell</em>, which is a
<p>Each command in a multi-command pipeline,
where pipes are created,
is executed in its own <em>subshell</em>, which is a
separate process (see <a href="#Command-Execution-Environment">Command Execution Environment</a>).
If the <code>lastpipe</code> option is enabled using the <code>shopt</code> builtin
(see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>),
@@ -3307,7 +3309,9 @@ then any character not enclosed is matched. A &lsquo;<samp>-</samp>&rsquo;
may be matched by including it as the first or last character
in the set. A &lsquo;<samp>]</samp>&rsquo; may be matched by including it as the first
character in the set.
The sorting order of characters in range expressions is determined by
The sorting order of characters in range expressions,
and the characters included in the range,
are determined by
the current locale and the values of the
<code>LC_COLLATE</code> and <code>LC_ALL</code> shell variables, if set.
</p>
@@ -7987,10 +7991,12 @@ No other startup files are read.
<span id="Invoked-by-remote-shell-daemon"></span><h4 class="subsubheading">Invoked by remote shell daemon</h4>
<p>Bash attempts to determine when it is being run with its standard input
connected to a network connection, as when executed by the remote shell
daemon, usually <code>rshd</code>, or the secure shell daemon <code>sshd</code>.
If Bash determines it is being run in
this fashion, it reads and executes commands from <samp>~/.bashrc</samp>, if that
connected to a network connection, as when executed by
the historical remote shell daemon, usually <code>rshd</code>,
or the secure shell daemon <code>sshd</code>.
If Bash
determines it is being run non-interactively in this fashion,
it reads and executes commands from <samp>~/.bashrc</samp>, if that
file exists and is readable.
It will not do this if invoked as <code>sh</code>.
The <samp>--norc</samp> option may be used to inhibit this behavior, and the
@@ -9865,9 +9871,17 @@ argument restricts operation to running jobs.
<p>Suspend the execution of this shell until it receives a
<code>SIGCONT</code> signal.
A login shell cannot be suspended; the <samp>-f</samp>
A login shell,
or a shell without job control enabled,
cannot be suspended; the <samp>-f</samp>
option can be used to override this and force the suspension.
</p></dd>
The return status is 0 unless the shell is a login shell
or job control is not enabled
and
<samp>-f</samp>
is not supplied.
</p>
</dd>
</dl>
<p>When job control is not active, the <code>kill</code> and <code>wait</code>
+160 -154
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.8 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 11 April 2022).
Bash shell (version 5.2, 17 May 2022).
This is Edition 5.2, last updated 11 April 2022, of 'The GNU Bash
This is Edition 5.2, last updated 17 May 2022, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Copyright (C) 1988-2022 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 11 April 2022). The Bash home page is
Bash shell (version 5.2, 17 May 2022). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.2, last updated 11 April 2022, of 'The GNU Bash
This is Edition 5.2, last updated 17 May 2022, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Bash contains features that appear in other popular shells, and some
@@ -705,11 +705,12 @@ information.
If the pipeline is not executed asynchronously (*note Lists::), the
shell waits for all commands in the pipeline to complete.
Each command in a pipeline is executed in its own "subshell", which
is a separate process (*note Command Execution Environment::). If the
'lastpipe' option is enabled using the 'shopt' builtin (*note The Shopt
Builtin::), the last element of a pipeline may be run by the shell
process when job control is not active.
Each command in a multi-command pipeline, where pipes are created, is
executed in its own "subshell", which is a separate process (*note
Command Execution Environment::). If the 'lastpipe' option is enabled
using the 'shopt' builtin (*note The Shopt Builtin::), the last element
of a pipeline may be run by the shell process when job control is not
active.
The exit status of a pipeline is the exit status of the last command
in the pipeline, unless the 'pipefail' option is enabled (*note The Set
@@ -2432,9 +2433,10 @@ characters must be quoted if they are to be matched literally.
character not enclosed is matched. A '-' may be matched by
including it as the first or last character in the set. A ']' may
be matched by including it as the first character in the set. The
sorting order of characters in range expressions is determined by
the current locale and the values of the 'LC_COLLATE' and 'LC_ALL'
shell variables, if set.
sorting order of characters in range expressions, and the
characters included in the range, are determined by the current
locale and the values of the 'LC_COLLATE' and 'LC_ALL' shell
variables, if set.
For example, in the default C locale, '[a-dx-z]' is equivalent to
'[abcdxyz]'. Many locales sort characters in dictionary order, and
@@ -6147,14 +6149,15 @@ Invoked by remote shell daemon
..............................
Bash attempts to determine when it is being run with its standard input
connected to a network connection, as when executed by the remote shell
daemon, usually 'rshd', or the secure shell daemon 'sshd'. If Bash
determines it is being run in this fashion, it reads and executes
commands from '~/.bashrc', if that file exists and is readable. It will
not do this if invoked as 'sh'. The '--norc' option may be used to
inhibit this behavior, and the '--rcfile' option may be used to force
another file to be read, but neither 'rshd' nor 'sshd' generally invoke
the shell with those options or allow them to be specified.
connected to a network connection, as when executed by the historical
remote shell daemon, usually 'rshd', or the secure shell daemon 'sshd'.
If Bash determines it is being run non-interactively in this fashion, it
reads and executes commands from '~/.bashrc', if that file exists and is
readable. It will not do this if invoked as 'sh'. The '--norc' option
may be used to inhibit this behavior, and the '--rcfile' option may be
used to force another file to be read, but neither 'rshd' nor 'sshd'
generally invoke the shell with those options or allow them to be
specified.
Invoked with unequal effective and real UID/GIDs
................................................
@@ -7651,8 +7654,11 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
suspend [-f]
Suspend the execution of this shell until it receives a 'SIGCONT'
signal. A login shell cannot be suspended; the '-f' option can be
used to override this and force the suspension.
signal. A login shell, or a shell without job control enabled,
cannot be suspended; the '-f' option can be used to override this
and force the suspension. The return status is 0 unless the shell
is a login shell or job control is not enabled and '-f' is not
supplied.
When job control is not active, the 'kill' and 'wait' builtins do not
accept JOBSPEC arguments. They must be supplied process IDs.
@@ -12500,138 +12506,138 @@ D.5 Concept Index

Tag Table:
Node: Top891
Node: Introduction2805
Node: What is Bash?3021
Node: What is a shell?4135
Node: Definitions6673
Node: Basic Shell Features9624
Node: Shell Syntax10843
Node: Shell Operation11869
Node: Quoting13162
Node: Escape Character14466
Node: Single Quotes14951
Node: Double Quotes15299
Node: ANSI-C Quoting16577
Node: Locale Translation17887
Node: Creating Internationalized Scripts19198
Node: Comments23315
Node: Shell Commands23933
Node: Reserved Words24871
Node: Simple Commands25627
Node: Pipelines26281
Node: Lists29240
Node: Compound Commands31035
Node: Looping Constructs32047
Node: Conditional Constructs34542
Node: Command Grouping48886
Node: Coprocesses50364
Node: GNU Parallel53027
Node: Shell Functions53944
Node: Shell Parameters61829
Node: Positional Parameters66217
Node: Special Parameters67119
Node: Shell Expansions70333
Node: Brace Expansion72460
Node: Tilde Expansion75194
Node: Shell Parameter Expansion77815
Node: Command Substitution96166
Node: Arithmetic Expansion97521
Node: Process Substitution98489
Node: Word Splitting99609
Node: Filename Expansion101553
Node: Pattern Matching104302
Node: Quote Removal108910
Node: Redirections109205
Node: Executing Commands118865
Node: Simple Command Expansion119535
Node: Command Search and Execution121645
Node: Command Execution Environment124023
Node: Environment127058
Node: Exit Status128721
Node: Signals130505
Node: Shell Scripts133954
Node: Shell Builtin Commands136981
Node: Bourne Shell Builtins139019
Node: Bash Builtins160480
Node: Modifying Shell Behavior191336
Node: The Set Builtin191681
Node: The Shopt Builtin202282
Node: Special Builtins218194
Node: Shell Variables219173
Node: Bourne Shell Variables219610
Node: Bash Variables221714
Node: Bash Features254530
Node: Invoking Bash255543
Node: Bash Startup Files261556
Node: Interactive Shells266659
Node: What is an Interactive Shell?267069
Node: Is this Shell Interactive?267718
Node: Interactive Shell Behavior268533
Node: Bash Conditional Expressions272162
Node: Shell Arithmetic276804
Node: Aliases279748
Node: Arrays282361
Node: The Directory Stack288752
Node: Directory Stack Builtins289536
Node: Controlling the Prompt293796
Node: The Restricted Shell296761
Node: Bash POSIX Mode299371
Node: Shell Compatibility Mode311295
Node: Job Control319324
Node: Job Control Basics319784
Node: Job Control Builtins324786
Node: Job Control Variables330186
Node: Command Line Editing331342
Node: Introduction and Notation333013
Node: Readline Interaction334636
Node: Readline Bare Essentials335827
Node: Readline Movement Commands337610
Node: Readline Killing Commands338570
Node: Readline Arguments340488
Node: Searching341532
Node: Readline Init File343718
Node: Readline Init File Syntax344979
Node: Conditional Init Constructs368178
Node: Sample Init File372374
Node: Bindable Readline Commands375498
Node: Commands For Moving376702
Node: Commands For History378753
Node: Commands For Text383747
Node: Commands For Killing387396
Node: Numeric Arguments390429
Node: Commands For Completion391568
Node: Keyboard Macros395759
Node: Miscellaneous Commands396446
Node: Readline vi Mode402385
Node: Programmable Completion403292
Node: Programmable Completion Builtins411072
Node: A Programmable Completion Example421767
Node: Using History Interactively427014
Node: Bash History Facilities427698
Node: Bash History Builtins430703
Node: History Interaction435711
Node: Event Designators439331
Node: Word Designators440685
Node: Modifiers442445
Node: Installing Bash444256
Node: Basic Installation445393
Node: Compilers and Options449115
Node: Compiling For Multiple Architectures449856
Node: Installation Names451549
Node: Specifying the System Type453658
Node: Sharing Defaults454374
Node: Operation Controls455047
Node: Optional Features456005
Node: Reporting Bugs467223
Node: Major Differences From The Bourne Shell468498
Node: GNU Free Documentation License485348
Node: Indexes510525
Node: Builtin Index510979
Node: Reserved Word Index517806
Node: Variable Index520254
Node: Function Index537028
Node: Concept Index550812
Node: Top887
Node: Introduction2797
Node: What is Bash?3013
Node: What is a shell?4127
Node: Definitions6665
Node: Basic Shell Features9616
Node: Shell Syntax10835
Node: Shell Operation11861
Node: Quoting13154
Node: Escape Character14458
Node: Single Quotes14943
Node: Double Quotes15291
Node: ANSI-C Quoting16569
Node: Locale Translation17879
Node: Creating Internationalized Scripts19190
Node: Comments23307
Node: Shell Commands23925
Node: Reserved Words24863
Node: Simple Commands25619
Node: Pipelines26273
Node: Lists29272
Node: Compound Commands31067
Node: Looping Constructs32079
Node: Conditional Constructs34574
Node: Command Grouping48918
Node: Coprocesses50396
Node: GNU Parallel53059
Node: Shell Functions53976
Node: Shell Parameters61861
Node: Positional Parameters66249
Node: Special Parameters67151
Node: Shell Expansions70365
Node: Brace Expansion72492
Node: Tilde Expansion75226
Node: Shell Parameter Expansion77847
Node: Command Substitution96198
Node: Arithmetic Expansion97553
Node: Process Substitution98521
Node: Word Splitting99641
Node: Filename Expansion101585
Node: Pattern Matching104334
Node: Quote Removal108991
Node: Redirections109286
Node: Executing Commands118946
Node: Simple Command Expansion119616
Node: Command Search and Execution121726
Node: Command Execution Environment124104
Node: Environment127139
Node: Exit Status128802
Node: Signals130586
Node: Shell Scripts134035
Node: Shell Builtin Commands137062
Node: Bourne Shell Builtins139100
Node: Bash Builtins160561
Node: Modifying Shell Behavior191417
Node: The Set Builtin191762
Node: The Shopt Builtin202363
Node: Special Builtins218275
Node: Shell Variables219254
Node: Bourne Shell Variables219691
Node: Bash Variables221795
Node: Bash Features254611
Node: Invoking Bash255624
Node: Bash Startup Files261637
Node: Interactive Shells266768
Node: What is an Interactive Shell?267178
Node: Is this Shell Interactive?267827
Node: Interactive Shell Behavior268642
Node: Bash Conditional Expressions272271
Node: Shell Arithmetic276913
Node: Aliases279857
Node: Arrays282470
Node: The Directory Stack288861
Node: Directory Stack Builtins289645
Node: Controlling the Prompt293905
Node: The Restricted Shell296870
Node: Bash POSIX Mode299480
Node: Shell Compatibility Mode311404
Node: Job Control319433
Node: Job Control Basics319893
Node: Job Control Builtins324895
Node: Job Control Variables330465
Node: Command Line Editing331621
Node: Introduction and Notation333292
Node: Readline Interaction334915
Node: Readline Bare Essentials336106
Node: Readline Movement Commands337889
Node: Readline Killing Commands338849
Node: Readline Arguments340767
Node: Searching341811
Node: Readline Init File343997
Node: Readline Init File Syntax345258
Node: Conditional Init Constructs368457
Node: Sample Init File372653
Node: Bindable Readline Commands375777
Node: Commands For Moving376981
Node: Commands For History379032
Node: Commands For Text384026
Node: Commands For Killing387675
Node: Numeric Arguments390708
Node: Commands For Completion391847
Node: Keyboard Macros396038
Node: Miscellaneous Commands396725
Node: Readline vi Mode402664
Node: Programmable Completion403571
Node: Programmable Completion Builtins411351
Node: A Programmable Completion Example422046
Node: Using History Interactively427293
Node: Bash History Facilities427977
Node: Bash History Builtins430982
Node: History Interaction435990
Node: Event Designators439610
Node: Word Designators440964
Node: Modifiers442724
Node: Installing Bash444535
Node: Basic Installation445672
Node: Compilers and Options449394
Node: Compiling For Multiple Architectures450135
Node: Installation Names451828
Node: Specifying the System Type453937
Node: Sharing Defaults454653
Node: Operation Controls455326
Node: Optional Features456284
Node: Reporting Bugs467502
Node: Major Differences From The Bourne Shell468777
Node: GNU Free Documentation License485627
Node: Indexes510804
Node: Builtin Index511258
Node: Reserved Word Index518085
Node: Variable Index520533
Node: Function Index537307
Node: Concept Index551091

End Tag Table
+47 -41
View File
@@ -1,9 +1,11 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_2) (preloaded format=pdftex 2021.10.21) 12 APR 2022 10:01
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/MacPorts 2022.62882_0) (preloaded format=pdfetex 2022.5.4) 4 MAY 2022 15:11
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**/usr/local/src/chet/src/bash/src/doc/bashref.texi
(/usr/local/src/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
**\input /usr/local/src/chet/src/bash/src/doc/bashref.texi
(/usr/local/src/chet/src/bash/src/doc/bashref.texi
(/usr/local/src/chet/src/bash/src/doc/texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -159,24 +161,27 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
texinfo.tex: doing @include of version.texi
(./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
(/usr/local/src/chet/src/bash/src/doc/version.texi) [1{/opt/local/var/db/texmf/
fonts/map/pdftex/updmap/pdftex.map}] [2]
(/usr/local/src/chet/src/bash/src/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/src/chet/src/bash/src/doc/bashref.toc)
(/usr/local/src/chet/src/bash/src/doc/bashref.toc) Chapter 1
\openout0 = `bashref.toc'.
(./bashref.aux)
(/usr/local/src/chet/src/bash/src/doc/bashref.aux)
\openout1 = `bashref.aux'.
Chapter 2 [1] [2]
@cpindfile=@write2
\openout2 = `bashref.cp'.
[3] Chapter 3 [4] [5] [6] [7]
[3]
Chapter 3 [4] [5] [6] [7]
@vrindfile=@write3
\openout3 = `bashref.vr'.
[8]
[8]
Overfull \hbox (3.12749pt too wide) in paragraph at lines 723--724
@texttt coproc[]|
@@ -223,7 +228,7 @@ Overfull \hbox (5.95723pt too wide) in paragraph at lines 724--725
[48] [49] [50] [51]
[52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66]
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5215--5215
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5219--5219
[]@texttt set [-abefhkmnptuvxBCEHPT] [-o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -236,7 +241,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5215--5215
.etc.
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5216--5216
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5220--5220
[]@texttt set [+abefhkmnptuvxBCEHPT] [+o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -320,7 +325,7 @@ texinfo.tex: doing @include of hsuser.texi
(/usr/local/src/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
[151] [152] [153] [154] [155] [156]) Chapter 10 [157] [158] [159] [160]
[161]
Underfull \hbox (badness 10000) in paragraph at lines 9348--9357
Underfull \hbox (badness 10000) in paragraph at lines 9352--9361
[]@textrm All of the fol-low-ing op-tions ex-cept for `@texttt alt-array-implem
entation[]@textrm '[],
@@ -333,7 +338,7 @@ entation[]@textrm '[],
.etc.
Underfull \hbox (badness 10000) in paragraph at lines 9348--9357
Underfull \hbox (badness 10000) in paragraph at lines 9352--9361
@textrm `@texttt disabled-builtins[]@textrm '[], `@texttt direxpand-default[]@t
extrm '[], `@texttt strict-posix-default[]@textrm '[], and
@@ -349,37 +354,38 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
[171] [172] Appendix C [173]
texinfo.tex: doing @include of fdl.texi
(./fdl.texi [174] [175] [176] [177] [178] [179]
[180]) Appendix D [181] [182] [183] [184] [185] [186] [187] [188] [189]
[190] )
(/usr/local/src/chet/src/bash/src/doc/fdl.texi
[174] [175] [176] [177] [178] [179] [180]) Appendix D [181] [182] [183]
[184] [185] [186] [187] [188] [189] [190] )
Here is how much of TeX's memory you used:
4094 strings out of 497086
46987 string characters out of 6206519
140408 words of memory out of 5000000
4867 multiletter control sequences out of 15000+600000
4094 strings out of 497074
47491 string characters out of 6206289
141494 words of memory out of 5000000
4870 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,323b,978s stack positions out of 5000i,500n,10000p,200000b,80000s
{/opt/local/share/texmf-texlive/fonts/enc/dvips/cm-super/cm-super-t1.enc
}</opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbx12.pfb></op
t/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmcsc10.pfb></opt/lo
cal/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi10.pfb></opt/local/s
hare/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-texliv
e/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/type
1/public/amsfonts/cm/cmsltt10.pfb></opt/local/share/texmf-texlive/fonts/type1/p
ublic/amsfonts/cm/cmsy10.pfb></opt/local/share/texmf-texlive/fonts/type1/public
/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsf
onts/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/cm
tt9.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm-super/sfrm1095.pf
b></opt/local/share/texmf-texlive/fonts/type1/public/cm-super/sfrm1440.pfb>
Output written on bashref.pdf (196 pages, 794079 bytes).
16i,6n,16p,330b,978s stack positions out of 10000i,1000n,20000p,200000b,200000s
{/opt/local/share/texmf-texlive/font
s/enc/dvips/cm-super/cm-super-t1.enc}</opt/local/share/texmf-texlive/fonts/type
1/public/amsfonts/cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
lic/amsfonts/cm/cmcsc10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/
amsfonts/cm/cmmi10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfo
nts/cm/cmmi12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/c
m/cmmi9.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr1
0.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr9.pfb><
/opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb></opt/
local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsltt10.pfb></opt/loc
al/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></opt/local/sh
are/texmf-texlive/fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/t
exmf-texlive/fonts/type1/public/amsfonts/cm/cmtt10.pfb></opt/local/share/texmf-
texlive/fonts/type1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texli
ve/fonts/type1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fon
ts/type1/public/cm-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/typ
e1/public/cm-super/sfrm1440.pfb>
Output written on bashref.pdf (196 pages, 794067 bytes).
PDF statistics:
2750 PDF objects out of 2984 (max. 8388607)
2507 compressed objects within 26 object streams
2752 PDF objects out of 2984 (max. 8388607)
2509 compressed objects within 26 object streams
324 named destinations out of 1000 (max. 500000)
1141 words of extra memory for PDF output out of 10000 (max. 10000000)
BIN
View File
Binary file not shown.
+122 -120
View File
@@ -1,7 +1,7 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 2021.1 Copyright 2021 Radical Eye Software
%%Creator: dvips(k) 2022.1 (TeX Live 2022) Copyright 2022 Radical Eye Software
%%Title: bashref.dvi
%%CreationDate: Tue Apr 12 14:01:11 2022
%%CreationDate: Wed May 4 19:11:10 2022
%%Pages: 196
%%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 2022.04.12:1001
%DVIPSSource: TeX output 2022.05.04:1511
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -7614,7 +7614,7 @@ 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(5.2,)g(for)f
Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.2.)3333 1697 y(April)f(2022)150
Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.2.)3364 1697 y(Ma)m(y)g(2022)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
@@ -7622,15 +7622,16 @@ 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(5.2,)c(11)f(April)f
(2022\).)150 4523 y(This)j(is)h(Edition)f(5.2,)j(last)f(up)s(dated)d
(11)j(April)e(2022,)k(of)d Fr(The)f(GNU)h(Bash)g(Reference)g(Man)m(ual)
p Fu(,)i(for)150 4633 y Ft(Bash)p Fu(,)29 b(V)-8 b(ersion)31
b(5.2.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767
y Fq(\015)f Fu(1988{2022)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(5.2,)c(2)e(Ma)m(y)i
(2022\).)150 4523 y(This)38 b(is)g(Edition)h(5.2,)j(last)d(up)s(dated)e
(2)i(Ma)m(y)h(2022,)j(of)38 b Fr(The)g(GNU)h(Bash)g(Reference)g(Man)m
(ual)p Fu(,)j(for)150 4633 y Ft(Bash)p Fu(,)29 b(V)-8
b(ersion)31 b(5.2.)150 4767 y(Cop)m(yrigh)m(t)602 4764
y(c)577 4767 y Fq(\015)f Fu(1988{2022)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
@@ -8688,158 +8689,158 @@ y Fk(3.2.3)63 b(Pip)s(elines)150 446 y Fu(A)21 b Ft(pipeline)d
Fu(is)j(a)g(sequence)g(of)g(one)g(or)g(more)g(commands)f(separated)h(b)
m(y)g(one)g(of)g(the)g(con)m(trol)h(op)s(erators)150
555 y(`)p Ft(|)p Fu(')31 b(or)f(`)p Ft(|&)p Fu('.)275
683 y(The)f(format)i(for)f(a)h(pip)s(eline)f(is)390 810
695 y(The)f(format)i(for)f(a)h(pip)s(eline)f(is)390 834
y Ft([time)46 b([-p]])h([!])g Fj(command1)e Ft([)j(|)f(or)g(|&)g
Fj(command2)f Ft(])h(...)150 938 y Fu(The)25 b(output)f(of)i(eac)m(h)g
Fj(command2)f Ft(])h(...)150 974 y Fu(The)25 b(output)f(of)i(eac)m(h)g
(command)f(in)f(the)i(pip)s(eline)e(is)i(connected)g(via)f(a)h(pip)s(e)
e(to)i(the)f(input)f(of)h(the)h(next)150 1047 y(command.)40
e(to)i(the)f(input)f(of)h(the)h(next)150 1083 y(command.)40
b(That)29 b(is,)h(eac)m(h)h(command)e(reads)g(the)h(previous)f
(command's)g(output.)40 b(This)29 b(connection)150 1157
(command's)g(output.)40 b(This)29 b(connection)150 1193
y(is)h(p)s(erformed)f(b)s(efore)h(an)m(y)h(redirections)g(sp)s
(eci\014ed)f(b)m(y)g Fr(command1)p Fu(.)275 1284 y(If)k(`)p
(eci\014ed)f(b)m(y)g Fr(command1)p Fu(.)275 1333 y(If)k(`)p
Ft(|&)p Fu(')h(is)f(used,)i Fr(command1)7 b Fu('s)35
b(standard)f(error,)i(in)e(addition)h(to)h(its)f(standard)f(output,)i
(is)e(con-)150 1394 y(nected)h(to)g Fr(command2)7 b Fu('s)35
(is)e(con-)150 1442 y(nected)h(to)g Fr(command2)7 b Fu('s)35
b(standard)f(input)f(through)h(the)g(pip)s(e;)i(it)f(is)g(shorthand)e
(for)h Ft(2>&1)29 b(|)p Fu(.)53 b(This)150 1504 y(implicit)41
(for)h Ft(2>&1)29 b(|)p Fu(.)53 b(This)150 1552 y(implicit)41
b(redirection)f(of)g(the)g(standard)f(error)g(to)h(the)g(standard)f
(output)g(is)h(p)s(erformed)e(after)j(an)m(y)150 1613
(output)g(is)h(p)s(erformed)e(after)j(an)m(y)150 1661
y(redirections)31 b(sp)s(eci\014ed)f(b)m(y)g Fr(command1)p
Fu(.)275 1741 y(The)36 b(reserv)m(ed)g(w)m(ord)g Ft(time)g
Fu(.)275 1801 y(The)36 b(reserv)m(ed)g(w)m(ord)g Ft(time)g
Fu(causes)h(timing)g(statistics)h(to)f(b)s(e)f(prin)m(ted)g(for)g(the)h
(pip)s(eline)f(once)h(it)150 1850 y(\014nishes.)51 b(The)34
(pip)s(eline)f(once)h(it)150 1910 y(\014nishes.)51 b(The)34
b(statistics)i(curren)m(tly)e(consist)h(of)f(elapsed)h(\(w)m(all-clo)s
(c)m(k\))i(time)e(and)f(user)f(and)h(system)150 1960
(c)m(k\))i(time)e(and)f(user)f(and)h(system)150 2020
y(time)e(consumed)e(b)m(y)h(the)g(command's)g(execution.)44
b(The)31 b Ft(-p)f Fu(option)i(c)m(hanges)g(the)f(output)g(format)g(to)
150 2069 y(that)j(sp)s(eci\014ed)e(b)m(y)h Fm(posix)p
150 2130 y(that)j(sp)s(eci\014ed)e(b)m(y)h Fm(posix)p
Fu(.)49 b(When)33 b(the)g(shell)g(is)h(in)e Fm(posix)h
Fu(mo)s(de)g(\(see)h(Section)g(6.11)g([Bash)g(POSIX)150
2179 y(Mo)s(de],)j(page)e(106\),)j(it)e(do)s(es)e(not)i(recognize)g
2239 y(Mo)s(de],)j(page)e(106\),)j(it)e(do)s(es)e(not)i(recognize)g
Ft(time)e Fu(as)h(a)h(reserv)m(ed)f(w)m(ord)f(if)h(the)g(next)g(tok)m
(en)h(b)s(egins)150 2289 y(with)d(a)g(`)p Ft(-)p Fu('.)49
(en)h(b)s(egins)150 2349 y(with)d(a)g(`)p Ft(-)p Fu('.)49
b(The)33 b Ft(TIMEFORMAT)d Fu(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(set)
g(to)h(a)g(format)f(string)g(that)h(sp)s(eci\014es)f(ho)m(w)g(the)150
2398 y(timing)38 b(information)g(should)e(b)s(e)h(displa)m(y)m(ed.)62
2458 y(timing)38 b(information)g(should)e(b)s(e)h(displa)m(y)m(ed.)62
b(See)38 b(Section)g(5.2)g([Bash)g(V)-8 b(ariables],)41
b(page)d(78,)i(for)e(a)150 2508 y(description)27 b(of)g(the)h(a)m(v)-5
b(page)d(78,)i(for)e(a)150 2568 y(description)27 b(of)g(the)h(a)m(v)-5
b(ailable)29 b(formats.)40 b(The)26 b(use)h(of)g Ft(time)f
Fu(as)i(a)f(reserv)m(ed)g(w)m(ord)g(p)s(ermits)f(the)h(timing)150
2617 y(of)38 b(shell)g(builtins,)i(shell)e(functions,)i(and)d(pip)s
2677 y(of)38 b(shell)g(builtins,)i(shell)e(functions,)i(and)d(pip)s
(elines.)63 b(An)38 b(external)h Ft(time)e Fu(command)h(cannot)g(time)
150 2727 y(these)31 b(easily)-8 b(.)275 2854 y(When)26
150 2787 y(these)31 b(easily)-8 b(.)275 2927 y(When)26
b(the)h(shell)g(is)g(in)g Fm(posix)f Fu(mo)s(de)g(\(see)i(Section)f
(6.11)i([Bash)e(POSIX)f(Mo)s(de],)i(page)g(106\),)h Ft(time)150
2964 y Fu(ma)m(y)d(b)s(e)f(follo)m(w)m(ed)j(b)m(y)d(a)h(newline.)39
3036 y Fu(ma)m(y)d(b)s(e)f(follo)m(w)m(ed)j(b)m(y)d(a)h(newline.)39
b(In)25 b(this)h(case,)i(the)d(shell)h(displa)m(ys)g(the)g(total)h
(user)e(and)g(system)h(time)150 3073 y(consumed)33 b(b)m(y)h(the)h
(user)e(and)g(system)h(time)150 3146 y(consumed)33 b(b)m(y)h(the)h
(shell)f(and)f(its)i(c)m(hildren.)51 b(The)34 b Ft(TIMEFORMAT)d
Fu(v)-5 b(ariable)35 b(ma)m(y)g(b)s(e)e(used)g(to)i(sp)s(ecify)150
3183 y(the)c(format)f(of)h(the)f(time)h(information.)275
3311 y(If)36 b(the)h(pip)s(eline)g(is)g(not)g(executed)h(async)m
3255 y(the)c(format)f(of)h(the)f(time)h(information.)275
3395 y(If)36 b(the)h(pip)s(eline)g(is)g(not)g(executed)h(async)m
(hronously)f(\(see)h(Section)g(3.2.4)g([Lists],)i(page)e(10\),)i(the)
150 3420 y(shell)31 b(w)m(aits)g(for)f(all)h(commands)f(in)g(the)h(pip)
s(eline)f(to)h(complete.)275 3548 y(Eac)m(h)e(command)g(in)g(a)g(pip)s
(eline)g(is)g(executed)h(in)e(its)i(o)m(wn)f Fr(subshell)p
Fu(,)f(whic)m(h)h(is)g(a)g(separate)h(pro)s(cess)150
3657 y(\(see)g(Section)g(3.7.3)h([Command)e(Execution)h(En)m(vironmen)m
(t],)g(page)g(43\).)41 b(If)29 b(the)g Ft(lastpipe)e
Fu(option)j(is)150 3767 y(enabled)35 b(using)g(the)g
Ft(shopt)f Fu(builtin)g(\(see)i(Section)g(4.3.2)h([The)e(Shopt)f
(Builtin],)j(page)f(71\),)i(the)d(last)150 3876 y(elemen)m(t)d(of)e(a)h
(pip)s(eline)f(ma)m(y)h(b)s(e)f(run)f(b)m(y)h(the)h(shell)f(pro)s(cess)
g(when)f(job)h(con)m(trol)i(is)f(not)f(activ)m(e.)275
4004 y(The)24 b(exit)i(status)f(of)h(a)f(pip)s(eline)g(is)g(the)g(exit)
h(status)f(of)h(the)f(last)h(command)f(in)f(the)i(pip)s(eline,)g
(unless)150 4113 y(the)31 b Ft(pipefail)d Fu(option)j(is)g(enabled)f
(\(see)i(Section)f(4.3.1)i([The)d(Set)h(Builtin],)g(page)h(67\).)42
b(If)30 b Ft(pipefail)150 4223 y Fu(is)f(enabled,)g(the)f(pip)s
(eline's)g(return)g(status)h(is)f(the)h(v)-5 b(alue)29
b(of)f(the)h(last)g(\(righ)m(tmost\))i(command)d(to)h(exit)150
4333 y(with)34 b(a)h(non-zero)g(status,)i(or)d(zero)i(if)e(all)i
(commands)e(exit)h(successfully)-8 b(.)54 b(If)34 b(the)h(reserv)m(ed)g
(w)m(ord)f(`)p Ft(!)p Fu(')150 4442 y(precedes)e(the)f(pip)s(eline,)h
(the)f(exit)i(status)f(is)f(the)h(logical)i(negation)f(of)e(the)h(exit)
g(status)g(as)g(describ)s(ed)150 4552 y(ab)s(o)m(v)m(e.)63
b(The)38 b(shell)f(w)m(aits)i(for)e(all)i(commands)e(in)g(the)h(pip)s
(eline)f(to)h(terminate)h(b)s(efore)e(returning)g(a)150
4661 y(v)-5 b(alue.)150 4846 y Fk(3.2.4)63 b(Lists)41
b(of)h(Commands)150 4993 y Fu(A)37 b Ft(list)e Fu(is)i(a)g(sequence)g
(of)g(one)g(or)f(more)h(pip)s(elines)f(separated)h(b)m(y)g(one)g(of)f
(the)h(op)s(erators)g(`)p Ft(;)p Fu(',)i(`)p Ft(&)p Fu(',)150
5103 y(`)p Ft(&&)p Fu(',)31 b(or)f(`)p Ft(||)p Fu(',)g(and)g
(optionally)i(terminated)f(b)m(y)f(one)h(of)f(`)p Ft(;)p
Fu(',)h(`)p Ft(&)p Fu(',)g(or)f(a)h Ft(newline)p Fu(.)275
5230 y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p Ft(&&)p
Fu(')d(and)g(`)p Ft(||)p Fu(')h(ha)m(v)m(e)h(equal)f(precedence,)i
(follo)m(w)m(ed)f(b)m(y)f(`)p Ft(;)p Fu(')g(and)f(`)p
Ft(&)p Fu(',)i(whic)m(h)150 5340 y(ha)m(v)m(e)32 b(equal)e(precedence.)
p eop end
150 3504 y(shell)31 b(w)m(aits)g(for)f(all)h(commands)f(in)g(the)h(pip)
s(eline)f(to)h(complete.)275 3644 y(Eac)m(h)d(command)g(in)f(a)i(m)m
(ulti-command)f(pip)s(eline,)h(where)e(pip)s(es)g(are)h(created,)i(is)e
(executed)h(in)f(its)150 3753 y(o)m(wn)h Fr(subshell)p
Fu(,)f(whic)m(h)h(is)g(a)g(separate)h(pro)s(cess)e(\(see)i(Section)g
(3.7.3)g([Command)f(Execution)g(En)m(viron-)150 3863
y(men)m(t],)d(page)e(43\).)40 b(If)23 b(the)h Ft(lastpipe)d
Fu(option)j(is)g(enabled)g(using)f(the)h Ft(shopt)e Fu(builtin)h(\(see)
i(Section)f(4.3.2)150 3973 y([The)i(Shopt)f(Builtin],)i(page)g(71\),)h
(the)e(last)h(elemen)m(t)g(of)f(a)g(pip)s(eline)g(ma)m(y)g(b)s(e)f(run)
g(b)m(y)g(the)h(shell)g(pro)s(cess)150 4082 y(when)j(job)h(con)m(trol)i
(is)f(not)f(activ)m(e.)275 4222 y(The)24 b(exit)i(status)f(of)h(a)f
(pip)s(eline)g(is)g(the)g(exit)h(status)f(of)h(the)f(last)h(command)f
(in)f(the)i(pip)s(eline,)g(unless)150 4331 y(the)31 b
Ft(pipefail)d Fu(option)j(is)g(enabled)f(\(see)i(Section)f(4.3.1)i
([The)d(Set)h(Builtin],)g(page)h(67\).)42 b(If)30 b Ft(pipefail)150
4441 y Fu(is)f(enabled,)g(the)f(pip)s(eline's)g(return)g(status)h(is)f
(the)h(v)-5 b(alue)29 b(of)f(the)h(last)g(\(righ)m(tmost\))i(command)d
(to)h(exit)150 4550 y(with)34 b(a)h(non-zero)g(status,)i(or)d(zero)i
(if)e(all)i(commands)e(exit)h(successfully)-8 b(.)54
b(If)34 b(the)h(reserv)m(ed)g(w)m(ord)f(`)p Ft(!)p Fu(')150
4660 y(precedes)e(the)f(pip)s(eline,)h(the)f(exit)i(status)f(is)f(the)h
(logical)i(negation)f(of)e(the)h(exit)g(status)g(as)g(describ)s(ed)150
4770 y(ab)s(o)m(v)m(e.)63 b(The)38 b(shell)f(w)m(aits)i(for)e(all)i
(commands)e(in)g(the)h(pip)s(eline)f(to)h(terminate)h(b)s(efore)e
(returning)g(a)150 4879 y(v)-5 b(alue.)150 5083 y Fk(3.2.4)63
b(Lists)41 b(of)h(Commands)150 5230 y Fu(A)37 b Ft(list)e
Fu(is)i(a)g(sequence)g(of)g(one)g(or)f(more)h(pip)s(elines)f(separated)
h(b)m(y)g(one)g(of)f(the)h(op)s(erators)g(`)p Ft(;)p
Fu(',)i(`)p Ft(&)p Fu(',)150 5340 y(`)p Ft(&&)p Fu(',)31
b(or)f(`)p Ft(||)p Fu(',)g(and)g(optionally)i(terminated)f(b)m(y)f(one)
h(of)f(`)p Ft(;)p Fu(',)h(`)p Ft(&)p Fu(',)g(or)f(a)h
Ft(newline)p Fu(.)p eop end
%%Page: 11 17
TeXDict begin 11 16 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(11)275 299
y(A)29 b(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h(app)s
(ear)f(in)h(a)g Ft(list)e Fu(to)j(delimit)f(commands,)g(equiv-)150
408 y(alen)m(t)i(to)f(a)g(semicolon.)275 548 y(If)c(a)h(command)f(is)h
(terminated)g(b)m(y)g(the)g(con)m(trol)h(op)s(erator)f(`)p
y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p Ft(&&)p
Fu(')d(and)g(`)p Ft(||)p Fu(')h(ha)m(v)m(e)h(equal)f(precedence,)i
(follo)m(w)m(ed)f(b)m(y)f(`)p Ft(;)p Fu(')g(and)f(`)p
Ft(&)p Fu(',)i(whic)m(h)150 408 y(ha)m(v)m(e)32 b(equal)e(precedence.)
275 536 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h
(app)s(ear)f(in)h(a)g Ft(list)e Fu(to)j(delimit)f(commands,)g(equiv-)
150 646 y(alen)m(t)i(to)f(a)g(semicolon.)275 773 y(If)c(a)h(command)f
(is)h(terminated)g(b)m(y)g(the)g(con)m(trol)h(op)s(erator)f(`)p
Ft(&)p Fu(',)h(the)e(shell)h(executes)h(the)f(command)150
658 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28
883 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28
b(is)h(kno)m(wn)f(as)h(executing)h(the)f(command)g(in)f(the)h
Fr(bac)m(kground)p Fu(,)150 767 y(and)42 b(these)i(are)f(referred)g(to)
Fr(bac)m(kground)p Fu(,)150 992 y(and)42 b(these)i(are)f(referred)g(to)
g(as)h Fr(async)m(hronous)i Fu(commands.)78 b(The)43
b(shell)g(do)s(es)g(not)g(w)m(ait)h(for)f(the)150 877
b(shell)g(do)s(es)g(not)g(w)m(ait)h(for)f(the)150 1102
y(command)34 b(to)h(\014nish,)f(and)f(the)h(return)f(status)i(is)f(0)g
(\(true\).)53 b(When)34 b(job)g(con)m(trol)h(is)f(not)h(activ)m(e)h
(\(see)150 986 y(Chapter)27 b(7)h([Job)f(Con)m(trol],)i(page)g(113\),)h
(the)d(standard)g(input)f(for)i(async)m(hronous)f(commands,)h(in)f(the)
150 1096 y(absence)k(of)f(an)m(y)h(explicit)h(redirections,)f(is)f
(redirected)h(from)f Ft(/dev/null)p Fu(.)275 1236 y(Commands)19
(\(see)150 1211 y(Chapter)27 b(7)h([Job)f(Con)m(trol],)i(page)g(113\),)
h(the)d(standard)g(input)f(for)i(async)m(hronous)f(commands,)h(in)f
(the)150 1321 y(absence)k(of)f(an)m(y)h(explicit)h(redirections,)f(is)f
(redirected)h(from)f Ft(/dev/null)p Fu(.)275 1448 y(Commands)19
b(separated)j(b)m(y)f(a)g(`)p Ft(;)p Fu(')g(are)h(executed)g(sequen)m
(tially;)k(the)21 b(shell)g(w)m(aits)h(for)f(eac)m(h)h(command)150
1345 y(to)31 b(terminate)h(in)e(turn.)39 b(The)30 b(return)f(status)i
1558 y(to)31 b(terminate)h(in)e(turn.)39 b(The)30 b(return)f(status)i
(is)f(the)h(exit)g(status)g(of)g(the)f(last)h(command)f(executed.)275
1485 y Fm(and)g Fu(and)h Fm(or)g Fu(lists)h(are)g(sequences)f(of)h(one)
1685 y Fm(and)g Fu(and)h Fm(or)g Fu(lists)h(are)g(sequences)f(of)h(one)
g(or)f(more)h(pip)s(elines)e(separated)i(b)m(y)g(the)f(con)m(trol)i(op)
s(er-)150 1594 y(ators)e(`)p Ft(&&)p Fu(')f(and)g(`)p
s(er-)150 1795 y(ators)e(`)p Ft(&&)p Fu(')f(and)g(`)p
Ft(||)p Fu(',)h(resp)s(ectiv)m(ely)-8 b(.)42 b Fm(and)30
b Fu(and)f Fm(or)h Fu(lists)h(are)g(executed)g(with)f(left)h(asso)s
(ciativit)m(y)-8 b(.)275 1734 y(An)30 b Fm(and)f Fu(list)i(has)f(the)h
(form)390 1874 y Fj(command1)46 b Ft(&&)h Fj(command2)150
2013 y Fr(command2)38 b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
(ciativit)m(y)-8 b(.)275 1923 y(An)30 b Fm(and)f Fu(list)i(has)f(the)h
(form)390 2050 y Fj(command1)46 b Ft(&&)h Fj(command2)150
2178 y Fr(command2)38 b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
Fr(command1)38 b Fu(returns)29 b(an)h(exit)h(status)g(of)g(zero)g
(\(success\).)275 2153 y(An)f Fm(or)f Fu(list)i(has)f(the)h(form)390
2293 y Fj(command1)46 b Ft(||)h Fj(command2)150 2432
(\(success\).)275 2305 y(An)f Fm(or)f Fu(list)i(has)f(the)h(form)390
2432 y Fj(command1)46 b Ft(||)h Fj(command2)150 2560
y Fr(command2)38 b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
Fr(command1)38 b Fu(returns)29 b(a)i(non-zero)g(exit)g(status.)275
2572 y(The)h(return)g(status)i(of)f Fm(and)f Fu(and)h
2687 y(The)h(return)g(status)i(of)f Fm(and)f Fu(and)h
Fm(or)f Fu(lists)i(is)f(the)g(exit)h(status)g(of)f(the)g(last)h
(command)f(executed)150 2681 y(in)d(the)h(list.)150 2886
y Fk(3.2.5)63 b(Comp)s(ound)42 b(Commands)150 3033 y
(command)f(executed)150 2797 y(in)d(the)h(list.)150 2982
y Fk(3.2.5)63 b(Comp)s(ound)42 b(Commands)150 3129 y
Fu(Comp)s(ound)29 b(commands)h(are)i(the)f(shell)g(programming)f
(language)j(constructs.)42 b(Eac)m(h)32 b(construct)f(b)s(e-)150
3142 y(gins)25 b(with)f(a)i(reserv)m(ed)f(w)m(ord)f(or)h(con)m(trol)h
3239 y(gins)25 b(with)f(a)i(reserv)m(ed)f(w)m(ord)f(or)h(con)m(trol)h
(op)s(erator)f(and)g(is)g(terminated)g(b)m(y)g(a)g(corresp)s(onding)f
(reserv)m(ed)150 3252 y(w)m(ord)i(or)g(op)s(erator.)40
(reserv)m(ed)150 3348 y(w)m(ord)i(or)g(op)s(erator.)40
b(An)m(y)26 b(redirections)g(\(see)i(Section)f(3.6)g([Redirections],)h
(page)f(38\))h(asso)s(ciated)f(with)150 3361 y(a)k(comp)s(ound)f
(page)f(38\))h(asso)s(ciated)f(with)150 3458 y(a)k(comp)s(ound)f
(command)h(apply)f(to)i(all)g(commands)f(within)f(that)i(comp)s(ound)d
(command)i(unless)f(ex-)150 3471 y(plicitly)i(o)m(v)m(erridden.)275
3611 y(In)20 b(most)h(cases)g(a)g(list)h(of)f(commands)f(in)g(a)h(comp)
(command)i(unless)f(ex-)150 3568 y(plicitly)i(o)m(v)m(erridden.)275
3695 y(In)20 b(most)h(cases)g(a)g(list)h(of)f(commands)f(in)g(a)h(comp)
s(ound)f(command's)g(description)h(ma)m(y)g(b)s(e)f(separated)150
3720 y(from)30 b(the)h(rest)g(of)g(the)g(command)g(b)m(y)f(one)h(or)g
3805 y(from)30 b(the)h(rest)g(of)g(the)g(command)g(b)m(y)f(one)h(or)g
(more)g(newlines,)g(and)f(ma)m(y)i(b)s(e)e(follo)m(w)m(ed)i(b)m(y)f(a)g
(newline)150 3830 y(in)f(place)h(of)g(a)g(semicolon.)275
3969 y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e
(newline)150 3914 y(in)f(place)h(of)g(a)g(semicolon.)275
4042 y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e
(commands,)j(and)44 b(mec)m(hanisms)i(to)g(group)150
4079 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)150
4283 y Fk(3.2.5.1)63 b(Lo)s(oping)43 b(Constructs)150
4430 y Fu(Bash)31 b(supp)s(orts)d(the)j(follo)m(wing)g(lo)s(oping)g
(constructs.)275 4570 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
4151 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)150
4336 y Fk(3.2.5.1)63 b(Lo)s(oping)43 b(Constructs)150
4483 y Fu(Bash)31 b(supp)s(orts)d(the)j(follo)m(wing)g(lo)s(oping)g
(constructs.)275 4611 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
Ft(;)p Fu(')g(app)s(ears)f(in)h(the)g(description)g(of)g(a)g(command's)
g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 4680 y(replaced)c(with)f(one)h
(or)f(more)g(newlines.)150 4847 y Ft(until)240 b Fu(The)30
g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 4720 y(replaced)c(with)f(one)h
(or)f(more)g(newlines.)150 4866 y Ft(until)240 b Fu(The)30
b(syn)m(tax)h(of)f(the)h Ft(until)e Fu(command)h(is:)870
4984 y Ft(until)46 b Fj(test-commands)p Ft(;)e(do)j Fj
4993 y Ft(until)46 b Fj(test-commands)p Ft(;)e(do)j Fj
(consequent-commands)p Ft(;)c(done)630 5121 y Fu(Execute)f
Fr(consequen)m(t-commands)k Fu(as)41 b(long)h(as)f Fr(test-commands)46
b Fu(has)41 b(an)g(exit)h(status)630 5230 y(whic)m(h)c(is)h(not)g
@@ -10791,17 +10792,18 @@ Ft(^)p Fu(')g(then)f(an)m(y)630 4655 y(c)m(haracter)c(not)f(enclosed)g
(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 4765
y(\014rst)32 b(or)h(last)h(c)m(haracter)h(in)e(the)g(set.)50
b(A)33 b(`)p Ft(])p Fu(')g(ma)m(y)h(b)s(e)e(matc)m(hed)i(b)m(y)f
(including)g(it)g(as)h(the)630 4875 y(\014rst)25 b(c)m(haracter)i(in)e
(the)h(set.)40 b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f
(range)g(expressions)f(is)630 4984 y(determined)h(b)m(y)h(the)g(curren)
m(t)f(lo)s(cale)j(and)d(the)h(v)-5 b(alues)27 b(of)g(the)g
Ft(LC_COLLATE)d Fu(and)i Ft(LC_ALL)630 5094 y Fu(shell)31
b(v)-5 b(ariables,)31 b(if)f(set.)630 5230 y(F)-8 b(or)34
b(example,)g(in)f(the)g(default)g(C)f(lo)s(cale,)k(`)p
Ft([a-dx-z])p Fu(')31 b(is)i(equiv)-5 b(alen)m(t)34 b(to)g(`)p
Ft([abcdxyz])p Fu('.)630 5340 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m
(haracters)h(in)e(dictionary)i(order,)76 b(and)67 b(in)g(these)h(lo)s
(cales)p eop end
(including)g(it)g(as)h(the)630 4875 y(\014rst)c(c)m(haracter)j(in)d
(the)h(set.)43 b(The)31 b(sorting)g(order)g(of)g(c)m(haracters)h(in)f
(range)g(expressions,)630 4984 y(and)f(the)h(c)m(haracters)h(included)e
(in)h(the)f(range,)i(are)f(determined)f(b)m(y)h(the)g(curren)m(t)f(lo)s
(cale)630 5094 y(and)g(the)g(v)-5 b(alues)31 b(of)g(the)f
Ft(LC_COLLATE)e Fu(and)h Ft(LC_ALL)g Fu(shell)i(v)-5
b(ariables,)31 b(if)f(set.)630 5230 y(F)-8 b(or)34 b(example,)g(in)f
(the)g(default)g(C)f(lo)s(cale,)k(`)p Ft([a-dx-z])p Fu(')31
b(is)i(equiv)-5 b(alen)m(t)34 b(to)g(`)p Ft([abcdxyz])p
Fu('.)630 5340 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m(haracters)h(in)e
(dictionary)i(order,)76 b(and)67 b(in)g(these)h(lo)s(cales)p
eop end
%%Page: 37 43
TeXDict begin 37 42 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(37)630 299
+18 -7
View File
@@ -801,8 +801,9 @@ the time information.
If the pipeline is not executed asynchronously (@pxref{Lists}), the
shell waits for all commands in the pipeline to complete.
Each command in a multi-command
pipeline is executed in its own @dfn{subshell}, which is a
Each command in a multi-command pipeline,
where pipes are created,
is executed in its own @dfn{subshell}, which is a
separate process (@pxref{Command Execution Environment}).
If the @code{lastpipe} option is enabled using the @code{shopt} builtin
(@pxref{The Shopt Builtin}),
@@ -7104,10 +7105,12 @@ No other startup files are read.
@subsubheading Invoked by remote shell daemon
Bash attempts to determine when it is being run with its standard input
connected to a network connection, as when executed by the remote shell
daemon, usually @code{rshd}, or the secure shell daemon @code{sshd}.
If Bash determines it is being run in
this fashion, it reads and executes commands from @file{~/.bashrc}, if that
connected to a network connection, as when executed by
the historical remote shell daemon, usually @code{rshd},
or the secure shell daemon @code{sshd}.
If Bash
determines it is being run non-interactively in this fashion,
it reads and executes commands from @file{~/.bashrc}, if that
file exists and is readable.
It will not do this if invoked as @code{sh}.
The @option{--norc} option may be used to inhibit this behavior, and the
@@ -8914,8 +8917,16 @@ suspend [-f]
Suspend the execution of this shell until it receives a
@code{SIGCONT} signal.
A login shell cannot be suspended; the @option{-f}
A login shell,
or a shell without job control enabled,
cannot be suspended; the @option{-f}
option can be used to override this and force the suspension.
The return status is 0 unless the shell is a login shell
or job control is not enabled
and
@option{-f}
is not supplied.
@end table
When job control is not active, the @code{kill} and @code{wait}
+1 -1
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.4
%%CreationDate: Fri Apr 8 15:46:03 2022
%%CreationDate: Wed May 4 15:10:59 2022
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
+1 -1
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.4
%%CreationDate: Fri Apr 8 15:46:03 2022
%%CreationDate: Wed May 4 15:11:00 2022
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.22 4
+2 -2
View File
@@ -2,10 +2,10 @@
Copyright (C) 1988-2022 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Mon May 2 08:59:39 EDT 2022
@set LASTCHANGE Tue May 17 09:37:52 EDT 2022
@set EDITION 5.2
@set VERSION 5.2
@set UPDATED 2 May 2022
@set UPDATED 17 May 2022
@set UPDATED-MONTH May 2022
+87
View File
@@ -0,0 +1,87 @@
#! /bin/bash
#
# bcalc - a coproc example that uses bc to evaluate floating point expressions
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# If supplied command-line arguments, it uses them as the expression to have
# bc evaluate, and exits after reading the result. Otherwise, it enters an
# interactive mode, reading expressions and passing them to bc for evaluation,
# with line editing and history.
#
# You could even use this to write bc programs, but you'd have to rework the
# single-line REPL a little bit to do that (and get over the annoying timeout
# on the read)
#
# Chet Ramey
# chet.ramey@case.edu
# we force stderr to avoid synchronization issues on calculation errors, even
# with the read timeout
init()
{
coproc BC { bc -q 2>&1; }
# set scale
printf "scale = 10\n" >&${BC[1]}
}
# not strictly necessary; the pipes will be closed when the program exits
fini()
{
eval exec "${BC[1]}>&- ${BC[0]}<&-"
}
# set a read timeout of a half second to avoid synchronization problems
calc()
{
printf "%s\n" "$1" >&${BC[1]}
read -t 0.5 ANSWER <&${BC[0]}
}
init
# if we have command line options, process them as a single expression and
# print the result. we could just run `bc <<<"scale = 10 ; $*"' and be done
# with it, but we init the coproc before this and run the calculation through
# the pipes in case we want to do something else with the answer
if [ $# -gt 0 ] ; then
calc "$*"
printf "%s\n" "$ANSWER"
fini
exit 0
fi
# we don't want to save the history anywhere
unset HISTFILE
while read -e -p 'equation: ' EQN
do
case "$EQN" in
'') continue ;;
exit|quit) break ;;
esac
# save to the history list
history -s "$EQN"
# run it through bc
calc "$EQN"
if [ -n "$ANSWER" ] ; then
printf "%s\n" "$ANSWER"
fi
done
fini
exit 0
+3
View File
@@ -2515,6 +2515,9 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
prev = pipe_in;
cmd = command;
if (asynchronous)
itrace("execute_pipeline: asynchronous = 1");
while (cmd && cmd->type == cm_connection &&
cmd->value.Connection && cmd->value.Connection->connector == '|')
{
+1 -1
View File
@@ -3695,7 +3695,7 @@ kill_pid (pid, sig, group)
result = killpg (pid, sig);
/* If we're killing using job control notification, for example,
without job control active, we have to do things ourselves. */
else if (jobs[job]->pgrp == shell_pgrp)
else if (jobs[job]->pgrp == shell_pgrp) /* XXX - IS_JOBCONTROL(job) == 0? */
{
p = jobs[job]->pipe;
do
BIN
View File
Binary file not shown.
+110 -271
View File
@@ -11,16 +11,16 @@ msgstr ""
"Project-Id-Version: bash 5.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-28 12:51-0500\n"
"PO-Revision-Date: 2021-05-09 20:48+0800\n"
"PO-Revision-Date: 2022-05-10 16:30+0800\n"
"Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@lists.linux.org.tw>\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.4.3\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 3.0.1\n"
#: arrayfunc.c:66
msgid "bad array subscript"
@@ -353,7 +353,7 @@ msgstr "警告:-C 選項可能無法按預期工作"
#: builtins/complete.def:838
msgid "not currently executing completion function"
msgstr "目前未執行補完功能"
msgstr "目前未執行自動完成功能"
#: builtins/declare.def:134
msgid "can only be used in a function"
@@ -910,12 +910,12 @@ msgstr "%s 是一個函數\n"
#: builtins/type.def:299
#, c-format
msgid "%s is a special shell builtin\n"
msgstr "%s 是特別的 shell 內建物件\n"
msgstr "%s 是特別的 shell 內建命令\n"
#: builtins/type.def:301
#, c-format
msgid "%s is a shell builtin\n"
msgstr "%s 是 shell 內建物件\n"
msgstr "%s 是 shell 內建命令\n"
#: builtins/type.def:323 builtins/type.def:408
#, c-format
@@ -1596,7 +1596,7 @@ msgstr "尋找符合的「)」時遇到了未預期的檔案結束符"
#: pcomplete.c:1132
#, c-format
msgid "completion: function `%s' not found"
msgstr "補完: 未找到函數「%s」"
msgstr "自動完成: 未找到函數「%s」"
#: pcomplete.c:1722
#, c-format
@@ -1606,7 +1606,7 @@ msgstr "programmable_completion%s:可能重試迴圈"
#: pcomplib.c:182
#, c-format
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: 空的補完規格"
msgstr "progcomp_insert: %s: 空的自動完成規格"
#: print_cmd.c:302
#, c-format
@@ -2232,7 +2232,7 @@ msgstr "continue [n]"
#: builtins.c:60
msgid "builtin [shell-builtin [arg ...]]"
msgstr "builtin [shell 內建物件 [參數 …]]"
msgstr "builtin [shell 內建命令 [參數 …]]"
#: builtins.c:63
msgid "caller [expr]"
@@ -2668,14 +2668,14 @@ msgid ""
" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
" not a shell builtin."
msgstr ""
"執行 shell 內建物件。\n"
"執行 shell 內建命令。\n"
" \n"
" 帶 <參數> 執行 <shell 內建物件> 而不做指令查詢\n"
" 在希望以 shell 函數的形式來重新實現 shell 內建物件\n"
" 但需要在函數之內執行該 shell 內建物件的情況下有用處。\n"
" 帶 <參數> 執行 <shell 內建命令> 而不做指令查詢\n"
" 在希望以 shell 函數的形式來重新實現 shell 內建命令\n"
" 但需要在函數之內執行該 shell 內建命令的情況下有用處。\n"
" \n"
" 結束狀態:\n"
" 以 <shell 內建物件> 的結束狀態為準,或者如果 <shell 內建物件> 不是一個 shell 內建物件時\n"
" 以 <shell 內建命令> 的結束狀態為準,或者如果 <shell 內建命令> 不是一個 shell 內建命令時\n"
" 回傳 false。"
#: builtins.c:369
@@ -2864,43 +2864,6 @@ msgstr ""
" 回傳 COMMAND 指令的回傳狀態,或者當找不到 COMMAND 指令時失敗。"
#: builtins.c:490
#, fuzzy
#| msgid ""
#| "Set variable values and attributes.\n"
#| " \n"
#| " Declare variables and give them attributes. If no NAMEs are given,\n"
#| " display the attributes and values of all variables.\n"
#| " \n"
#| " Options:\n"
#| " -f\trestrict action or display to function names and definitions\n"
#| " -F\trestrict display to function names only (plus line number and\n"
#| " \t\tsource file when debugging)\n"
#| " -g\tcreate global variables when used in a shell function; otherwise\n"
#| " \t\tignored\n"
#| " -p\tdisplay the attributes and value of each NAME\n"
#| " \n"
#| " Options which set attributes:\n"
#| " -a\tto make NAMEs indexed arrays (if supported)\n"
#| " -A\tto make NAMEs associative arrays (if supported)\n"
#| " -i\tto make NAMEs have the `integer' attribute\n"
#| " -l\tto convert the value of each NAME to lower case on assignment\n"
#| " -n\tmake NAME a reference to the variable named by its value\n"
#| " -r\tto make NAMEs readonly\n"
#| " -t\tto make NAMEs have the `trace' attribute\n"
#| " -u\tto convert the value of each NAME to upper case on assignment\n"
#| " -x\tto make NAMEs export\n"
#| " \n"
#| " Using `+' instead of `-' turns off the given attribute.\n"
#| " \n"
#| " Variables with the integer attribute have arithmetic evaluation (see\n"
#| " the `let' command) performed when the variable is assigned a value.\n"
#| " \n"
#| " When used in a function, `declare' makes NAMEs local, as with the `local'\n"
#| " command. The `-g' option suppresses this behavior.\n"
#| " \n"
#| " Exit Status:\n"
#| " Returns success unless an invalid option is supplied or a variable\n"
#| " assignment error occurs."
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2942,19 +2905,21 @@ msgid ""
msgstr ""
"設定變數值和屬性。\n"
" \n"
" 規範變數並賦予它們屬性。如果沒用指定名稱,\n"
" 則顯示所有變數的屬性和值。\n"
" 宣告變數並賦予屬性。若未指定 <名稱>\n"
" 則顯示所有變數的屬性和值。\n"
" \n"
" 選項:\n"
" -f\t限制動作或顯示為只有函數名稱和定義\n"
" -F\t限制僅顯示函數名稱 (以及列號和原始檔名於偵錯時)\n"
" -g\t用於 shell 函數時建立全域變數 ; 否則忽略\n"
" -F\t限制僅顯示函數名稱(偵錯時另包含列號和原始檔名\n"
" -g\t用於 shell 函數時建立全域變數 ; 否則忽略\n"
" -I\t如果建立的是本地變數,則繼承上個作用域中,\n"
" \t\t同名變數的屬性及數值。\n"
" -p\t顯示每個 <名稱> 變數的屬性和值\n"
" \n"
" 設定屬性的選項:\n"
" -a\t使 <名稱> 成為索引陣列 (如果支援)\n"
" -A\t使 <名稱> 成為關聯陣列 (如果支援)\n"
" -i\t使 <名稱> 帶有「integer」(整數)屬性\n"
" -i\t使 <名稱> 帶有「integer」整數屬性\n"
" -l\t將每個 <名稱> 的值在指派時轉為小寫\n"
" -n\t使 <名稱> 成為指向一個以其值為名稱的變數引用\n"
" -r\t將 <名稱> 變為唯讀\n"
@@ -2962,16 +2927,15 @@ msgstr ""
" -u\t將每個 <名稱> 的值在指派時轉為大寫\n"
" -x\t將 <名稱> 匯出\n"
" \n"
" 用「+」代替「-」會關閉指定選項。\n"
" 用「+」代替「-」會關閉指定屬性。\n"
" \n"
" 帶有整數屬性的變數在指派時將使用算術求值(見\n"
" 「let」指令)\n"
" 帶有整數屬性的變數,會在指派時執行算術求值(見「let」指令)\n"
" \n"
" 在函數中使用時,「declare」使 <名稱> 成為本機變數,和「local」\n"
" 指令一致。「-g」選項壓制這個行為\n"
" 指令一致。「-g」選項壓制行為\n"
" \n"
" 結束狀態:\n"
" 回傳成功除非使用了無效選項或者發生錯誤。"
" 回傳成功除非使用了無效選項或者發生錯誤。"
#: builtins.c:532
msgid ""
@@ -3122,7 +3086,7 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
"啟用和停用 shell 內建物件。\n"
"啟用和停用 shell 內建命令。\n"
" \n"
" 啟用和停用 shell 的內建指令。停用使您能夠執行一個和內建\n"
" 指令同名磁碟上的指令,而無須使用完整的路徑名。\n"
@@ -3140,11 +3104,11 @@ msgstr ""
" \n"
" 不帶選項時,每一個 <名稱> 內建都被啟用。\n"
" \n"
" 如果要使用 $PATH 中找到的「test」而不是 shell 內建物件的版本,\n"
" 如果要使用 $PATH 中找到的「test」而不是 shell 內建命令的版本,\n"
" 輸入「enable -n test」。\n"
" \n"
" 結束狀態:\n"
" 回傳成功,除非 <名稱> 不是一個 shell 內建物件或者有錯誤發生。"
" 回傳成功,除非 <名稱> 不是一個 shell 內建命令或者有錯誤發生。"
#: builtins.c:640
msgid ""
@@ -3165,45 +3129,6 @@ msgstr ""
" 以指令的狀態結束,或者在指令為空的情況下回傳成功。"
#: builtins.c:652
#, fuzzy
#| msgid ""
#| "Parse option arguments.\n"
#| " \n"
#| " Getopts is used by shell procedures to parse positional parameters\n"
#| " as options.\n"
#| " \n"
#| " OPTSTRING contains the option letters to be recognized; if a letter\n"
#| " is followed by a colon, the option is expected to have an argument,\n"
#| " which should be separated from it by white space.\n"
#| " \n"
#| " Each time it is invoked, getopts will place the next option in the\n"
#| " shell variable $name, initializing name if it does not exist, and\n"
#| " the index of the next argument to be processed into the shell\n"
#| " variable OPTIND. OPTIND is initialized to 1 each time the shell or\n"
#| " a shell script is invoked. When an option requires an argument,\n"
#| " getopts places that argument into the shell variable OPTARG.\n"
#| " \n"
#| " getopts reports errors in one of two ways. If the first character\n"
#| " of OPTSTRING is a colon, getopts uses silent error reporting. In\n"
#| " this mode, no error messages are printed. If an invalid option is\n"
#| " seen, getopts places the option character found into OPTARG. If a\n"
#| " required argument is not found, getopts places a ':' into NAME and\n"
#| " sets OPTARG to the option character found. If getopts is not in\n"
#| " silent mode, and an invalid option is seen, getopts places '?' into\n"
#| " NAME and unsets OPTARG. If a required argument is not found, a '?'\n"
#| " is placed in NAME, OPTARG is unset, and a diagnostic message is\n"
#| " printed.\n"
#| " \n"
#| " If the shell variable OPTERR has the value 0, getopts disables the\n"
#| " printing of error messages, even if the first character of\n"
#| " OPTSTRING is not a colon. OPTERR has the value 1 by default.\n"
#| " \n"
#| " Getopts normally parses the positional parameters ($0 - $9), but if\n"
#| " more arguments are given, they are parsed instead.\n"
#| " \n"
#| " Exit Status:\n"
#| " Returns success if an option is found; fails if the end of options is\n"
#| " encountered or an error occurs."
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3245,14 +3170,12 @@ msgid ""
msgstr ""
"解析選項參數。\n"
" \n"
" Getopts 被 shell 過程用於解析可定位的參數為選項。\n"
" Getopts 被 shell 過程用來將可定位的參數解析為選項。\n"
" \n"
" <選項字串> 字串包含待識別的選項字母。如果一個字母後面跟\n"
" 著分號,則該選項需要一個參數,這個參數應利用空格與選項分開。\n"
" \n"
" <選項字串> 字串包含待識別的選項字母;如果一個字母後面跟\n"
" 著分號,則該選項需要一個參數,而該參數應用空格與選項分開。\n"
" \n"
" \n"
" 每次啟動時,getopts 會將下一個選項放到 shell 變數 $name\n"
" 每次呼叫時,getopts 會將下一個選項放到 shell 變數 $name\n"
" 中,如果 name 變數不存在則先將其初始化,而下一個待處\n"
" 理的參數序號放入 shell 變數 OPTIND 中。OPTIND 變數在每\n"
" 次 shell 或者 shell 指令稿啟動時都被初始化為 1。當一個選項要\n"
@@ -3260,26 +3183,24 @@ msgstr ""
" 中。\n"
" \n"
" getopts 有兩種通報錯誤的方法。如果 <選項字串> 變數的第\n"
" 一個字元是冒號,getopts 使用沉默錯誤通報。在這種模式\n"
" 下,不會印發生錯誤誤訊息。如果看到了一個無效選項,\n"
" getopts 將找到的選項字元放至 OPTARG 變數中。如果一個必\n"
" 須的選項沒有找到,getopts 放一個「:」到 <名稱> 變數中並且設\n"
" 置 OPTARG 變數為找到的選項字元。如果 getopts 不在默模\n"
" 式中,並且遇到了一個無效的選項,getopts 放置一個「?」到 <名稱> \n"
" 變數中並且取消設定 OPTARG 變數。如果必須的選項沒有找到\n"
" 一個「?」會被放入 <名稱> 變數中,OPTARG 將被取消設定,並且會\n"
" 印出一個診斷資訊。\n"
" 一個字元是冒號,getopts 進入靜默錯誤回報模式。在這種模式\n"
" 下,不會輸出錯誤訊息。看到了無效選項,getopts 將找到的\n"
" 選項字元放至 OPTARG 變數中。如果找不到必要引數,getopts\n"
" 會放一個「:」到 <名稱> 變數,並將 OPTARG 設為找到的選項字元\n"
" 。如果 getopts 不在默模式中,並且遇到了一個無效的選項,\n"
" getopts 放置一個「?」到 <名稱> 變數,並取消設定 OPTARG。\n"
" 如果找不到必要引數,則會在 NAME 放置「?」、取消設定 OPTARG\n"
" 並且會輸出診斷資訊。\n"
" \n"
" 如果 shell 變數 OPTERR 的值為 0getopts 停\n"
" 錯誤資訊的印出,即使 <選項字串> 變數的第一個字元不是\n"
" 個冒號。OPTERR 的預設值為 1。\n"
" 如果 shell 變數 OPTERR 的值為 0getopts 停止輸出錯誤訊息,\n"
" 即使 <選項字串> 變數的第一個字元不是冒號。OPTERR 的預設值為 1。\n"
" \n"
" Getopts 通常解析可定位的參數($0 - $9),不過如果提供了\n"
" 更多的參數,它們反而會被解析。\n"
" Getopts 通常解析可定位的參數$0 - $9,不過如果提供了\n"
" 更多的參數,會改解析這些引數。\n"
" \n"
" 結束狀態:\n"
" 如果一個選項被找到則回傳成功;如果遇到了選項的結尾或者\n"
" 有錯誤發生則回傳失敗。"
" 找到選項則回傳成功;如果選項提早結束,或者有錯誤發生,\n"
" 則回傳失敗。"
#: builtins.c:694
msgid ""
@@ -3678,7 +3599,7 @@ msgstr ""
" -l\t列出訊號名稱;如果參數後跟「-l」則被假設為訊號編號,\n"
" \t而相應的訊號名稱會被列出\n"
" \n"
" Kill 成為 shell 內建物件有兩個理由:它允許使用工作編號而不是行程識別碼,\n"
" Kill 成為 shell 內建命令有兩個理由:它允許使用工作編號而不是行程識別碼,\n"
" 並且在可以建立的行程數上限達到時允許行程被砍除。\n"
" \n"
" 結束狀態:\n"
@@ -4474,7 +4395,7 @@ msgstr ""
" \t不回傳「file」時,不回傳任何值。\n"
" -t\t回傳下列詞中的任何一個「alias」、「keyword」、\n"
" \t「function」、「builtin」、「file」或者「」,如果 <名稱> 是相應的\n"
" \t一個別名、shell 保留字、shell 函數、shell 內建物件、\n"
" \t一個別名、shell 保留字、shell 函數、shell 內建命令、\n"
" \t磁碟檔案或沒有找到。\n"
" \n"
" 參數:\n"
@@ -4484,52 +4405,6 @@ msgstr ""
" 如果所有的 <名稱> 指令都找到則回傳成功;任何找不到則失敗。"
#: builtins.c:1431
#, fuzzy
#| msgid ""
#| "Modify shell resource limits.\n"
#| " \n"
#| " Provides control over the resources available to the shell and processes\n"
#| " it creates, on systems that allow such control.\n"
#| " \n"
#| " Options:\n"
#| " -S\tuse the `soft' resource limit\n"
#| " -H\tuse the `hard' resource limit\n"
#| " -a\tall current limits are reported\n"
#| " -b\tthe socket buffer size\n"
#| " -c\tthe maximum size of core files created\n"
#| " -d\tthe maximum size of a process's data segment\n"
#| " -e\tthe maximum scheduling priority (`nice')\n"
#| " -f\tthe maximum size of files written by the shell and its children\n"
#| " -i\tthe maximum number of pending signals\n"
#| " -k\tthe maximum number of kqueues allocated for this process\n"
#| " -l\tthe maximum size a process may lock into memory\n"
#| " -m\tthe maximum resident set size\n"
#| " -n\tthe maximum number of open file descriptors\n"
#| " -p\tthe pipe buffer size\n"
#| " -q\tthe maximum number of bytes in POSIX message queues\n"
#| " -r\tthe maximum real-time scheduling priority\n"
#| " -s\tthe maximum stack size\n"
#| " -t\tthe maximum amount of cpu time in seconds\n"
#| " -u\tthe maximum number of user processes\n"
#| " -v\tthe size of virtual memory\n"
#| " -x\tthe maximum number of file locks\n"
#| " -P\tthe maximum number of pseudoterminals\n"
#| " -T\tthe maximum number of threads\n"
#| " \n"
#| " Not all options are available on all platforms.\n"
#| " \n"
#| " If LIMIT is given, it is the new value of the specified resource; the\n"
#| " special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
#| " current soft limit, the current hard limit, and no limit, respectively.\n"
#| " Otherwise, the current value of the specified resource is printed. If\n"
#| " no option is given, then -f is assumed.\n"
#| " \n"
#| " Values are in 1024-byte increments, except for -t, which is in seconds,\n"
#| " -p, which is in increments of 512 bytes, and -u, which is an unscaled\n"
#| " number of processes.\n"
#| " \n"
#| " Exit Status:\n"
#| " Returns success unless an invalid option is supplied or an error occurs."
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4579,42 +4454,43 @@ msgid ""
msgstr ""
"修改 shell 資源限制。\n"
" \n"
" 在允許此類控制的系統上,提供對 shell 及其建立的行程所可用的\n"
" 資源的控制。\n"
" 在允許此類控制的系統上,提供對 shell 及其建立的行程\n"
" 可用資源的控制。\n"
" \n"
" 選項:\n"
" -S\t使用軟 (「soft」) 資源限制\n"
" -H\t使用硬 (「hard」) 資源限制\n"
" -a\t所有目前限制都被通報\n"
" -b\t通訊端快取尺寸\n"
" -c\t建立核心檔案的最大尺寸\n"
" -d\t一個行程資料區最大尺寸\n"
" -e\t最高的排程優先順序 (「nice」)\n"
" -f\tshell 及其子行程可寫入的最大檔案尺寸\n"
" -i\t最多可以暫停的號數\n"
" -k\t為這個進程所分配最大 kqueues 數量\n"
" -l\t一個行程可鎖定的最大記憶體尺寸\n"
" -m\t最大的記憶體進駐尺寸\n"
" -n\t最多開啟檔案描述個數\n"
" -p\t管道緩衝區尺寸\n"
" -q\tPOSIX 訊佇列的最大位元組數\n"
" -S\t使用彈性(「soft」資源限制\n"
" -H\t使用固定(「hard」資源限制\n"
" -a\t回報目前的所有限制\n"
" -b\t通訊端快取大小\n"
" -c\t建立核心檔案的最大大小\n"
" -d\t一個行程資料區最大大小\n"
" -e\t最高的排程優先順序「nice」\n"
" -f\tshell 及其子行程可寫入的最大檔案大小\n"
" -i\t最多可以暫停的號數\n"
" -k\t為本行程分配最大 kqueues 數量\n"
" -l\t一個行程可鎖定的最大記憶體尺寸\n"
" -m\t最大的常駐記憶體大小\n"
" -n\t最多開啟檔案描述個數\n"
" -p\t管道緩衝區大小\n"
" -q\tPOSIX 訊佇列的最大位元組數\n"
" -r\t即時排程的最大優先順序\n"
" -s\t最大堆疊尺寸\n"
" -P\t偽終端的最大數量\n"
" -t\t最大的 CPU 時間,以秒為單位\n"
" -t\t最多可用的 CPU 時間,以秒為單位\n"
" -u\t最大使用者行程數\n"
" -v\t虛擬記憶體尺寸\n"
" -x\t最大的檔案鎖數量\n"
" -P\t最大可開啟的偽終端數量\n"
" -R\t一個即時執行緒在堵塞前可執行的最長時間\n"
" -T\t最大執行緒數量\n"
" \n"
" 並非所有選項在所有系統上可用。\n"
" \n"
" 如果提供了 LIMIT 變數,則它為指定資源的新值;特別的 LIMIT 值\n"
" 「soft」、「hard」和「unlimited」,分別表示目前的軟限制,硬限制和無限制。\n"
" 否則印出指定資源的目前限制值,不選項則假定為 -f\n"
" 如果有指定 LIMIT,則這個變數是指定資源的新值;特 LIMIT 值\n"
" 「soft」、「hard」和「unlimited」,分別表示目前的彈性限制、固定限制和\n"
" 無限制。若未指定,則輸出指定資源的目前限制值,不傳入選項則假定為 -f\n"
" \n"
" 取值都是 1024 位元組為單位,除了 -t 以秒為單位-p 以 512 位元組遞增\n"
" -u 為無尺度的行程數量。\n"
" 取值都是 1024 位元組為單位,除了 -t 以秒為單位-p 以 512 位元組遞增\n"
" -u 為無單位的行程數量。\n"
" \n"
" 結束狀態:\n"
" 回傳成功,除非使用了無效的選項或者錯誤發生。"
@@ -4652,25 +4528,6 @@ msgstr ""
" 回傳成功,除非使用了無效的 MODE 模式或者選項。"
#: builtins.c:1502
#, fuzzy
#| msgid ""
#| "Wait for job completion and return exit status.\n"
#| " \n"
#| " Waits for each process identified by an ID, which may be a process ID or a\n"
#| " job specification, and reports its termination status. If ID is not\n"
#| " given, waits for all currently active child processes, and the return\n"
#| " status is zero. If ID is a job specification, waits for all processes\n"
#| " in that job's pipeline.\n"
#| " \n"
#| " If the -n option is supplied, waits for the next job to terminate and\n"
#| " returns its exit status.\n"
#| " \n"
#| " If the -f option is supplied, and job control is enabled, waits for the\n"
#| " specified ID to terminate, instead of waiting for it to change status.\n"
#| " \n"
#| " Exit Status:\n"
#| " Returns the status of the last ID; fails if ID is invalid or an invalid\n"
#| " option is given."
msgid ""
"Wait for job completion and return exit status.\n"
" \n"
@@ -4699,18 +4556,25 @@ msgid ""
msgstr ""
"等待工作完成並回傳結束狀態。\n"
" \n"
" 等待以 ID 編號識別的行程其中 ID 可以是行程編號或者工作規格\n"
" 並通報它的終止狀態。如果 ID 沒有給出,則等待所有的目前活躍子\n"
" 行程,並且回傳狀態為。如果 ID 是工作規格,等待工作管中的\n"
" 等待以 ID 編號識別的行程其中 ID 可以是行程編號或者工作規格\n"
" 並回報其終止狀態。若未指定 ID,則等待所有的目前活躍子行程,\n"
" 並設定回傳狀態為 0。如果 ID 是工作規格,等待工作管中的\n"
" 所有行程。\n"
" \n"
" 若指定了 -n 選項,等待下一個工作完成並回傳其狀態。\n"
" 若指定了 -n 選項,等待 ID 清單中的單一個工作;若未指定,則\n"
" 等待下一個工作完成,並回傳其結束狀態。\n"
" \n"
" 如果指定了 -f 選項且啟用工作管理,則等待指定 ID 終止,而非\n"
" 等到其變更狀態。\n"
" 如果指定了 -p 選項,則會將選項引數中命名的 VAR 變數,指定\n"
" 為回傳結束狀態之工作的行程或工作識別子。這個變數在指定前,\n"
" 會先進行 unset。這個僅在指定 -n 選項時有幫助。\n"
"\n"
" 如果指定了 -f 選項且有啟用工作管理,則等待指定 ID 終止,\n"
" 而非等待其變更狀態。\n"
" \n"
" 結束狀態:\n"
" 回傳最後一個 ID 行程的狀態;如果使用了無效的 ID 或者選項則失敗。"
" 回傳最後一個 ID 行程的狀態;如果 ID 或指定之選項無效;\n"
" 或有指定 -nshell 卻沒有要不等待 (unwaited) 的子行程,\n"
" 則回傳失敗。"
#: builtins.c:1533
msgid ""
@@ -5398,31 +5262,6 @@ msgstr ""
" 回傳成功,除非使用了無效的選項或者發生寫入或指派錯誤。"
#: builtins.c:1971
#, fuzzy
#| msgid ""
#| "Specify how arguments are to be completed by Readline.\n"
#| " \n"
#| " For each NAME, specify how arguments are to be completed. If no options\n"
#| " are supplied, existing completion specifications are printed in a way that\n"
#| " allows them to be reused as input.\n"
#| " \n"
#| " Options:\n"
#| " -p\tprint existing completion specifications in a reusable format\n"
#| " -r\tremove a completion specification for each NAME, or, if no\n"
#| " \t\tNAMEs are supplied, all completion specifications\n"
#| " -D\tapply the completions and actions as the default for commands\n"
#| " \t\twithout any specific completion defined\n"
#| " -E\tapply the completions and actions to \"empty\" commands --\n"
#| " \t\tcompletion attempted on a blank line\n"
#| " -I\tapply the completions and actions to the initial (usually the\n"
#| " \t\tcommand) word\n"
#| " \n"
#| " When completion is attempted, the actions are applied in the order the\n"
#| " uppercase-letter options are listed above. If multiple options are supplied,\n"
#| " the -D option takes precedence over -E, and both take precedence over -I.\n"
#| " \n"
#| " Exit Status:\n"
#| " Returns success unless an invalid option is supplied or an error occurs."
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5448,20 +5287,20 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
"規範 readline 如何完成讀取數。\n"
"指定 readline 如何完成讀取數。\n"
" \n"
" 規格對於每一個<名稱>如何完成讀取參數。如果不選項,\n"
" 現有的補完規格會以可以重為輸入的格式出。\n"
" 指定每一個 <名稱> 如何完成讀取參數。如果不指定選項,\n"
" 現有的自動完成規格會以可以重新作為輸入使用的格式出。\n"
" \n"
" 選項:\n"
" -p\t以可重用的格式出現有的補完規格。\n"
" -r\t對於每個<名稱>刪除補完規格,或者如果沒有提供<名稱>\n"
" \t名稱,刪除所有的補完規格。\n"
" -D\t對於沒有補完規格定義的令,設定預設的補完動作\n"
" -E\t對於「empty」指令設定補完動作,—— 對於空列的補完。\n"
" -I\t套用補完和動作到首個 (通常是指令) 單詞\n"
" -p\t以可重用的格式出現有的自動完成規格。\n"
" -r\t移除每個 <名稱> 的自動完成規格。若未指定 <名稱>\n"
" \t則移除所有自動完成規格。\n"
" -D\t對於沒有自動完成規格定義的令,設定預設的自動完成動作\n"
" -E\t對於「empty」指令——嘗試對空白列進行自動完成——套用自動完成和動作。\n"
" -I\t套用自動完成和動作到首個通常是命令)單字\n"
" \n"
" 嘗試補完時,按照上述大寫字母選項的順序進行動作。 如果傳入了多個選項,\n"
" 發起自動完成嘗試時,將依上述大寫字母選項的順序進行動作。傳入了多個選項,\n"
" -D 選項優先於 -E 選項,而兩者優先於 -I 選項。\n"
" \n"
" 結束狀態:\n"
@@ -5478,9 +5317,9 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
"依據選項顯示可能的補完。\n"
"依據選項顯示可能的自動完成建議。\n"
" \n"
" 意圖在能產生可能的補完 shell 函數內部使用。\n"
" 意圖在能產生可能的自動完成 shell 函數內部使用。\n"
" 如果提供了可選的 WORD 參數,則產生按照 WORD\n"
" 進行的符合。\n"
" \n"
@@ -5515,27 +5354,27 @@ msgid ""
" Returns success unless an invalid option is supplied or NAME does not\n"
" have a completion specification defined."
msgstr ""
"修改或顯示補完選項。\n"
"修改或顯示自動完成選項。\n"
" \n"
" 修改每個 <名稱> 的補完選項,或如果沒有提供 <名稱>,執行目前的補完。\n"
" 如果不帶選項,印出每個 <名稱> 的補完選項或目前的補完規格。\n"
" 修改每個 <名稱> 的自動完成選項,或如果沒有提供 <名稱>,執行目前的自動完成。\n"
" 如果不帶選項,印出每個 <名稱> 的自動完成選項或目前的自動完成規格。\n"
" \n"
" 選項:\n"
" \t-o option\t為每個 <名稱> 設定補完選項 option\n"
" \t-D\t\t為「default」指令補完變更選項\n"
" \t-E\t\t為「empty」指令補完變更選項\n"
" \t-I\t\t為首單詞上的補完變更選項\n"
" \t-o option\t為每個 <名稱> 設定自動完成選項 option\n"
" \t-D\t\t為「default」指令自動完成變更選項\n"
" \t-E\t\t為「empty」指令自動完成變更選項\n"
" \t-I\t\t為首單詞上的自動完成變更選項\n"
" \n"
" 使用「+o」而不是「-o」可以關閉指定的選項。\n"
" \n"
" 參數:\n"
" \n"
" 每個 <名稱> 都對應一個之前以藉由「complete」內建定義了補完規格的\n"
" 指令。如果不提供 <名稱>,目前產生補完的函數必須呼叫 compopt\n"
" 並且目前執行的補完產生器選項會被修改。\n"
" 每個 <名稱> 都對應一個之前以藉由「complete」內建定義了自動完成規格的\n"
" 指令。如果不提供 <名稱>,目前產生自動完成的函數必須呼叫 compopt\n"
" 並且目前執行的自動完成產生器選項會被修改。\n"
" \n"
" 結束狀態:\n"
" 回傳成功,除非使用了無效的選項或者 <名稱> 沒有定義補完規格。"
" 回傳成功,除非使用了無效的選項或者 <名稱> 沒有定義自動完成規格。"
#: builtins.c:2047
msgid ""