mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-30 08:59:56 +02:00
fixes for $LINENO in multi-line simple commands; printf out-of-range values now cause a non-zero return status
This commit is contained in:
@@ -7255,3 +7255,45 @@ jobs.c
|
||||
the SIGCONT succeeds or if the process has terminated so we can
|
||||
clean it up later.
|
||||
Report from Earl Chew <earl_chew@yahoo.com>
|
||||
|
||||
make_cmd.c
|
||||
- make_simple_command,make_bare_simple_command: now take line number as
|
||||
an argument; used instead of line_number to set the line associated
|
||||
with the simple command
|
||||
|
||||
make_cmd.h
|
||||
- make_simple_command,make_bare_simple_command: change prototype
|
||||
|
||||
parse.y,builtins/command.def,builtins.jobs.def
|
||||
- make_simple_command,make_bare_simple_command: change callers
|
||||
|
||||
7/25
|
||||
----
|
||||
parse.y
|
||||
- read_token_word: try to keep track of whether we are parsing the
|
||||
first word of a simple command and set simplecmd_lineno if we
|
||||
are. We start a simple command when we return ASSIGNMENT_WORD
|
||||
or WORD in a command token position. This gives better values for
|
||||
$LINENO in multi-line simple commands
|
||||
- redirection: set simplecmd_lineno if it's -1, meaning this is a
|
||||
simple command with a leading redirection or a null command with
|
||||
only a redirection
|
||||
- pass simplecmd_lineno to make_simple_command if we are starting a
|
||||
simple command (the first ELEMENT)
|
||||
- parse_comsub,xparse_dolparen: save and restore simplecmd_lineno
|
||||
- simple_command,function_def production: reset simplecmd_lineno to -1
|
||||
after parsing a simple command or a function declared as WORD()
|
||||
|
||||
7/26
|
||||
----
|
||||
doc/bash.1,doc/bashref.texi
|
||||
- xpg_echo: add description of how this can be used to suppress echo
|
||||
option interpretation
|
||||
Inspired by report from Zachary Santer <zsanter@gmail.com>
|
||||
|
||||
7/27
|
||||
----
|
||||
builtins/printf.def
|
||||
- printf_erange: make out-of-range errors conversion errors even if
|
||||
the conversion function fully consumes the argument.
|
||||
From a report by thomas@habets.se
|
||||
|
||||
@@ -53,6 +53,7 @@ $END
|
||||
#include "../shell.h"
|
||||
#include "../execute_cmd.h"
|
||||
#include "../flags.h"
|
||||
#include "../parser.h"
|
||||
#include "bashgetopt.h"
|
||||
#include "common.h"
|
||||
|
||||
@@ -125,7 +126,7 @@ command_builtin (WORD_LIST *list)
|
||||
|
||||
/* We don't want this to be reparsed (consider command echo 'foo &'), so
|
||||
just make a simple_command structure and call execute_command with it. */
|
||||
command = make_bare_simple_command ();
|
||||
command = make_bare_simple_command (line_number);
|
||||
command->value.Simple->words = (WORD_LIST *)copy_word_list (list);
|
||||
command->value.Simple->redirects = (REDIRECT *)NULL;
|
||||
command->flags |= COMMAND_BUILTIN_FLAGS;
|
||||
|
||||
@@ -724,6 +724,8 @@ compgen_builtin (WORD_LIST *list)
|
||||
old_quoting = rl_filename_quoting_desired;
|
||||
old_suppress = rl_completion_suppress_append;
|
||||
|
||||
bashline_set_filename_hooks ();
|
||||
|
||||
/* probably don't have to save these, just being safe */
|
||||
old_line = pcomp_line;
|
||||
old_ind = pcomp_ind;
|
||||
|
||||
+2
-1
@@ -61,6 +61,7 @@ $END
|
||||
#include "../shell.h"
|
||||
#include "../jobs.h"
|
||||
#include "../execute_cmd.h"
|
||||
#include "../parser.h"
|
||||
#include "bashgetopt.h"
|
||||
#include "common.h"
|
||||
|
||||
@@ -200,7 +201,7 @@ execute_list_with_replacements (WORD_LIST *list)
|
||||
/* Next make a new simple command and execute it. */
|
||||
begin_unwind_frame ("jobs_builtin");
|
||||
|
||||
command = make_bare_simple_command ();
|
||||
command = make_bare_simple_command (line_number);
|
||||
command->value.Simple->words = copy_word_list (list);
|
||||
command->value.Simple->redirects = (REDIRECT *)NULL;
|
||||
command->flags |= CMD_INHIBIT_EXPANSION;
|
||||
|
||||
+2
-1
@@ -780,7 +780,8 @@ printf_builtin (WORD_LIST *list)
|
||||
static void
|
||||
printf_erange (char *s)
|
||||
{
|
||||
builtin_error (_("warning: %s: %s"), s, strerror(ERANGE));
|
||||
builtin_error (_("%s: %s"), s, strerror(ERANGE));
|
||||
conversion_error = 1;
|
||||
}
|
||||
|
||||
/* We duplicate a lot of what printf(3) does here. */
|
||||
|
||||
+244
-243
@@ -5065,10 +5065,10 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
characters is enabled. The --EE option disables the interpreta-
|
||||
tion of these escape characters, even on systems where they are
|
||||
interpreted by default. The xxppgg__eecchhoo shell option may be used
|
||||
to dynamically determine whether or not eecchhoo expands these es-
|
||||
cape characters by default. eecchhoo does not interpret ---- to mean
|
||||
the end of options. eecchhoo interprets the following escape se-
|
||||
quences:
|
||||
to dynamically determine whether or not eecchhoo interprets any op-
|
||||
tions and expands these escape characters by default. eecchhoo does
|
||||
not interpret ---- to mean the end of options. eecchhoo interprets
|
||||
the following escape sequences:
|
||||
\\aa alert (bell)
|
||||
\\bb backspace
|
||||
\\cc suppress further output
|
||||
@@ -6248,32 +6248,33 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
|
||||
xxppgg__eecchhoo
|
||||
If set, the eecchhoo builtin expands backslash-escape se-
|
||||
quences by default.
|
||||
quences by default. If the ppoossiixx shell option is also
|
||||
enabled, eecchhoo does not interpret any options.
|
||||
|
||||
ssuussppeenndd [--ff]
|
||||
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
|
||||
signal. A login shell, or a shell without job control enabled,
|
||||
cannot be suspended; the --ff 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 --ff is
|
||||
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
|
||||
signal. A login shell, or a shell without job control enabled,
|
||||
cannot be suspended; the --ff 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 --ff is
|
||||
not supplied.
|
||||
|
||||
tteesstt _e_x_p_r
|
||||
[[ _e_x_p_r ]]
|
||||
Return a status of 0 (true) or 1 (false) depending on the evalu-
|
||||
ation of the conditional expression _e_x_p_r. Each operator and op-
|
||||
erand must be a separate argument. Expressions are composed of
|
||||
the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS.
|
||||
tteesstt does not accept any options, nor does it accept and ignore
|
||||
erand must be a separate argument. Expressions are composed of
|
||||
the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS.
|
||||
tteesstt does not accept any options, nor does it accept and ignore
|
||||
an argument of ---- as signifying the end of options.
|
||||
|
||||
Expressions may be combined using the following operators,
|
||||
listed in decreasing order of precedence. The evaluation de-
|
||||
pends on the number of arguments; see below. Operator prece-
|
||||
Expressions may be combined using the following operators,
|
||||
listed in decreasing order of precedence. The evaluation de-
|
||||
pends on the number of arguments; see below. Operator prece-
|
||||
dence is used when there are five or more arguments.
|
||||
!! _e_x_p_r True if _e_x_p_r is false.
|
||||
(( _e_x_p_r ))
|
||||
Returns the value of _e_x_p_r. This may be used to override
|
||||
Returns the value of _e_x_p_r. This may be used to override
|
||||
the normal precedence of operators.
|
||||
_e_x_p_r_1 -aa _e_x_p_r_2
|
||||
True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
|
||||
@@ -6290,161 +6291,161 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
null.
|
||||
2 arguments
|
||||
If the first argument is !!, the expression is true if and
|
||||
only if the second argument is null. If the first argu-
|
||||
ment is one of the unary conditional operators listed
|
||||
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
|
||||
only if the second argument is null. If the first argu-
|
||||
ment is one of the unary conditional operators listed
|
||||
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
|
||||
true if the unary test is true. If the first argument is
|
||||
not a valid unary conditional operator, the expression is
|
||||
false.
|
||||
3 arguments
|
||||
The following conditions are applied in the order listed.
|
||||
If the second argument is one of the binary conditional
|
||||
If the second argument is one of the binary conditional
|
||||
operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the
|
||||
result of the expression is the result of the binary test
|
||||
using the first and third arguments as operands. The --aa
|
||||
and --oo operators are considered binary operators when
|
||||
there are three arguments. If the first argument is !!,
|
||||
the value is the negation of the two-argument test using
|
||||
using the first and third arguments as operands. The --aa
|
||||
and --oo operators are considered binary operators when
|
||||
there are three arguments. If the first argument is !!,
|
||||
the value is the negation of the two-argument test using
|
||||
the second and third arguments. If the first argument is
|
||||
exactly (( and the third argument is exactly )), the result
|
||||
is the one-argument test of the second argument. Other-
|
||||
is the one-argument test of the second argument. Other-
|
||||
wise, the expression is false.
|
||||
4 arguments
|
||||
The following conditions are applied in the order listed.
|
||||
If the first argument is !!, the result is the negation of
|
||||
the three-argument expression composed of the remaining
|
||||
arguments. the two-argument test using the second and
|
||||
third arguments. If the first argument is exactly (( and
|
||||
the fourth argument is exactly )), the result is the two-
|
||||
argument test of the second and third arguments. Other-
|
||||
the three-argument expression composed of the remaining
|
||||
arguments. the two-argument test using the second and
|
||||
third arguments. If the first argument is exactly (( and
|
||||
the fourth argument is exactly )), the result is the two-
|
||||
argument test of the second and third arguments. Other-
|
||||
wise, the expression is parsed and evaluated according to
|
||||
precedence using the rules listed above.
|
||||
5 or more arguments
|
||||
The expression is parsed and evaluated according to
|
||||
The expression is parsed and evaluated according to
|
||||
precedence using the rules listed above.
|
||||
|
||||
If the shell is not in _p_o_s_i_x _m_o_d_e, when used with tteesstt or [[, the
|
||||
<< and >> operators sort lexicographically using ASCII ordering.
|
||||
When the shell is in _p_o_s_i_x _m_o_d_e, these operators sort using the
|
||||
<< and >> operators sort lexicographically using ASCII ordering.
|
||||
When the shell is in _p_o_s_i_x _m_o_d_e, these operators sort using the
|
||||
current locale.
|
||||
|
||||
ttiimmeess Print the accumulated user and system times for the shell and
|
||||
ttiimmeess Print the accumulated user and system times for the shell and
|
||||
for processes run from the shell. The return status is 0.
|
||||
|
||||
ttrraapp [--llpp] [[_a_c_t_i_o_n] _s_i_g_s_p_e_c ...]
|
||||
The _a_c_t_i_o_n is a command that is read and executed when the shell
|
||||
receives signal(s) _s_i_g_s_p_e_c. If _a_c_t_i_o_n is absent (and there is a
|
||||
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
|
||||
original disposition (the value it had upon entrance to the
|
||||
shell). If _a_c_t_i_o_n is the null string the signal specified by
|
||||
each _s_i_g_s_p_e_c is ignored by the shell and by the commands it in-
|
||||
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
|
||||
original disposition (the value it had upon entrance to the
|
||||
shell). If _a_c_t_i_o_n is the null string the signal specified by
|
||||
each _s_i_g_s_p_e_c is ignored by the shell and by the commands it in-
|
||||
vokes.
|
||||
|
||||
If no arguments are supplied, ttrraapp displays the actions associ-
|
||||
If no arguments are supplied, ttrraapp displays the actions associ-
|
||||
ated with each trapped signal as a set of ttrraapp commands that can
|
||||
be reused as shell input to restore the current signal disposi-
|
||||
tions. If --pp is given, and _a_c_t_i_o_n is not present, then ttrraapp
|
||||
displays the actions associated with each _s_i_g_s_p_e_c or, if none
|
||||
be reused as shell input to restore the current signal disposi-
|
||||
tions. If --pp is given, and _a_c_t_i_o_n is not present, then ttrraapp
|
||||
displays the actions associated with each _s_i_g_s_p_e_c or, if none
|
||||
are supplied, for all trapped signals, as a set of ttrraapp commands
|
||||
that can be reused as shell input to restore the current signal
|
||||
dispositions. The --PP option behaves similarly, but displays
|
||||
only the actions associated with each _s_i_g_s_p_e_c argument. --PP re-
|
||||
quires at least one _s_i_g_s_p_e_c argument. The --PP or --pp options to
|
||||
ttrraapp may be used in a subshell environment (e.g., command sub-
|
||||
stitution) and, as long as they are used before ttrraapp is used to
|
||||
change a signal's handling, will display the state of its par-
|
||||
that can be reused as shell input to restore the current signal
|
||||
dispositions. The --PP option behaves similarly, but displays
|
||||
only the actions associated with each _s_i_g_s_p_e_c argument. --PP re-
|
||||
quires at least one _s_i_g_s_p_e_c argument. The --PP or --pp options to
|
||||
ttrraapp may be used in a subshell environment (e.g., command sub-
|
||||
stitution) and, as long as they are used before ttrraapp is used to
|
||||
change a signal's handling, will display the state of its par-
|
||||
ent's traps.
|
||||
|
||||
The --ll option causes ttrraapp to print a list of signal names and
|
||||
their corresponding numbers. Each _s_i_g_s_p_e_c is either a signal
|
||||
name defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names
|
||||
The --ll option causes ttrraapp to print a list of signal names and
|
||||
their corresponding numbers. Each _s_i_g_s_p_e_c is either a signal
|
||||
name defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names
|
||||
are case insensitive and the SSIIGG prefix is optional.
|
||||
|
||||
If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_c_t_i_o_n is executed on exit
|
||||
from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_c_t_i_o_n is
|
||||
If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_c_t_i_o_n is executed on exit
|
||||
from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_c_t_i_o_n is
|
||||
executed before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
|
||||
_s_e_l_e_c_t command, (( arithmetic command, [[ conditional command,
|
||||
_s_e_l_e_c_t command, (( arithmetic command, [[ conditional command,
|
||||
arithmetic _f_o_r command, and before the first command executes in
|
||||
a shell function (see SSHHEELLLL GGRRAAMMMMAARR above). Refer to the de-
|
||||
scription of the eexxttddeebbuugg option to the sshhoopptt builtin for de-
|
||||
tails of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is RREETTUURRNN,
|
||||
the command _a_c_t_i_o_n is executed each time a shell function or a
|
||||
script executed with the .. or ssoouurrccee builtins finishes execut-
|
||||
a shell function (see SSHHEELLLL GGRRAAMMMMAARR above). Refer to the de-
|
||||
scription of the eexxttddeebbuugg option to the sshhoopptt builtin for de-
|
||||
tails of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is RREETTUURRNN,
|
||||
the command _a_c_t_i_o_n is executed each time a shell function or a
|
||||
script executed with the .. or ssoouurrccee builtins finishes execut-
|
||||
ing.
|
||||
|
||||
If a _s_i_g_s_p_e_c is EERRRR, the command _a_c_t_i_o_n is executed whenever a
|
||||
If a _s_i_g_s_p_e_c is EERRRR, the command _a_c_t_i_o_n is executed whenever a
|
||||
pipeline (which may consist of a single simple command), a list,
|
||||
or a compound command returns a non-zero exit status, subject to
|
||||
the following conditions. The EERRRR trap is not executed if the
|
||||
the following conditions. The EERRRR trap is not executed if the
|
||||
failed command is part of the command list immediately following
|
||||
a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
|
||||
a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
|
||||
part of a command executed in a &&&& or |||| list except the command
|
||||
following the final &&&& or ||||, any command in a pipeline but the
|
||||
last, or if the command's return value is being inverted using
|
||||
following the final &&&& or ||||, any command in a pipeline but the
|
||||
last, or if the command's return value is being inverted using
|
||||
!!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) op-
|
||||
tion.
|
||||
|
||||
When the shell is not interactive, signals ignored upon entry to
|
||||
the shell cannot be trapped or reset. Interactive shells permit
|
||||
trapping signals ignored on entry. Trapped signals that are not
|
||||
being ignored are reset to their original values in a subshell
|
||||
or subshell environment when one is created. The return status
|
||||
being ignored are reset to their original values in a subshell
|
||||
or subshell environment when one is created. The return status
|
||||
is false if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true.
|
||||
|
||||
ttrruuee Does nothing, returns a 0 status.
|
||||
|
||||
ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...]
|
||||
With no options, indicate how each _n_a_m_e would be interpreted if
|
||||
With no options, indicate how each _n_a_m_e would be interpreted if
|
||||
used as a command name. If the --tt option is used, ttyyppee prints a
|
||||
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
|
||||
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
|
||||
builtin, or executable disk file, respectively. If the _n_a_m_e is
|
||||
not found, then nothing is printed, and ttyyppee returns a non-zero
|
||||
exit status. If the --pp option is used, ttyyppee either returns the
|
||||
name of the executable file that would be found by searching
|
||||
$$PPAATTHH if _n_a_m_e were specified as a command name, or nothing if
|
||||
``type -t name'' would not return _f_i_l_e. The --PP option forces a
|
||||
PPAATTHH search for each _n_a_m_e, even if ``type -t name'' would not
|
||||
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
|
||||
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
|
||||
builtin, or executable disk file, respectively. If the _n_a_m_e is
|
||||
not found, then nothing is printed, and ttyyppee returns a non-zero
|
||||
exit status. If the --pp option is used, ttyyppee either returns the
|
||||
name of the executable file that would be found by searching
|
||||
$$PPAATTHH if _n_a_m_e were specified as a command name, or nothing if
|
||||
``type -t name'' would not return _f_i_l_e. The --PP option forces a
|
||||
PPAATTHH search for each _n_a_m_e, even if ``type -t name'' would not
|
||||
return _f_i_l_e. If a command is hashed, --pp and --PP print the hashed
|
||||
value, which is not necessarily the file that appears first in
|
||||
PPAATTHH. If the --aa option is used, ttyyppee prints all of the places
|
||||
that contain a command named _n_a_m_e. This includes aliases, re-
|
||||
served words, functions, and builtins, but the path search op-
|
||||
value, which is not necessarily the file that appears first in
|
||||
PPAATTHH. If the --aa option is used, ttyyppee prints all of the places
|
||||
that contain a command named _n_a_m_e. This includes aliases, re-
|
||||
served words, functions, and builtins, but the path search op-
|
||||
tions (--pp and --PP) can be supplied to restrict the output to exe-
|
||||
cutable files. ttyyppee does not consult the table of hashed com-
|
||||
cutable files. ttyyppee does not consult the table of hashed com-
|
||||
mands when using --aa with --pp, and only performs a PPAATTHH search for
|
||||
_n_a_m_e. The --ff option suppresses shell function lookup, as with
|
||||
the ccoommmmaanndd builtin. ttyyppee returns true if all of the arguments
|
||||
_n_a_m_e. The --ff option suppresses shell function lookup, as with
|
||||
the ccoommmmaanndd builtin. ttyyppee returns true if all of the arguments
|
||||
are found, false if any are not found.
|
||||
|
||||
uulliimmiitt [--HHSS] --aa
|
||||
uulliimmiitt [--HHSS] [--bbccddeeffiikkllmmnnppqqrrssttuuvvxxPPRRTT [_l_i_m_i_t]]
|
||||
Provides control over the resources available to the shell and
|
||||
to processes started by it, on systems that allow such control.
|
||||
Provides control over the resources available to the shell and
|
||||
to processes started by it, on systems that allow such control.
|
||||
The --HH and --SS options specify that the hard or soft limit is set
|
||||
for the given resource. A hard limit cannot be increased by a
|
||||
non-root user once it is set; a soft limit may be increased up
|
||||
to the value of the hard limit. If neither --HH nor --SS is speci-
|
||||
for the given resource. A hard limit cannot be increased by a
|
||||
non-root user once it is set; a soft limit may be increased up
|
||||
to the value of the hard limit. If neither --HH nor --SS is speci-
|
||||
fied, both the soft and hard limits are set. The value of _l_i_m_i_t
|
||||
can be a number in the unit specified for the resource or one of
|
||||
the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the
|
||||
current hard limit, the current soft limit, and no limit, re-
|
||||
spectively. If _l_i_m_i_t is omitted, the current value of the soft
|
||||
current hard limit, the current soft limit, and no limit, re-
|
||||
spectively. If _l_i_m_i_t is omitted, the current value of the soft
|
||||
limit of the resource is printed, unless the --HH option is given.
|
||||
When more than one resource is specified, the limit name and
|
||||
unit, if appropriate, are printed before the value. Other op-
|
||||
When more than one resource is specified, the limit name and
|
||||
unit, if appropriate, are printed before the value. Other op-
|
||||
tions are interpreted as follows:
|
||||
--aa All current limits are reported; no limits are set
|
||||
--bb The maximum socket buffer size
|
||||
--cc The maximum size of core files created
|
||||
--dd The maximum size of a process's data segment
|
||||
--ee The maximum scheduling priority ("nice")
|
||||
--ff The maximum size of files written by the shell and its
|
||||
--ff The maximum size of files written by the shell and its
|
||||
children
|
||||
--ii The maximum number of pending signals
|
||||
--kk The maximum number of kqueues that may be allocated
|
||||
--ll The maximum size that may be locked into memory
|
||||
--mm The maximum resident set size (many systems do not honor
|
||||
--mm The maximum resident set size (many systems do not honor
|
||||
this limit)
|
||||
--nn The maximum number of open file descriptors (most systems
|
||||
do not allow this value to be set)
|
||||
@@ -6453,134 +6454,134 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
--rr The maximum real-time scheduling priority
|
||||
--ss The maximum stack size
|
||||
--tt The maximum amount of cpu time in seconds
|
||||
--uu The maximum number of processes available to a single
|
||||
--uu The maximum number of processes available to a single
|
||||
user
|
||||
--vv The maximum amount of virtual memory available to the
|
||||
--vv The maximum amount of virtual memory available to the
|
||||
shell and, on some systems, to its children
|
||||
--xx The maximum number of file locks
|
||||
--PP The maximum number of pseudoterminals
|
||||
--RR The maximum time a real-time process can run before
|
||||
--RR The maximum time a real-time process can run before
|
||||
blocking, in microseconds
|
||||
--TT The maximum number of threads
|
||||
|
||||
If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the
|
||||
new value of the specified resource. If no option is given,
|
||||
then --ff is assumed. Values are in 1024-byte increments, except
|
||||
for --tt, which is in seconds; --RR, which is in microseconds; --pp,
|
||||
which is in units of 512-byte blocks; --PP, --TT, --bb, --kk, --nn, and
|
||||
--uu, which are unscaled values; and, when in posix mode, --cc and
|
||||
--ff, which are in 512-byte increments. The return status is 0
|
||||
unless an invalid option or argument is supplied, or an error
|
||||
If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the
|
||||
new value of the specified resource. If no option is given,
|
||||
then --ff is assumed. Values are in 1024-byte increments, except
|
||||
for --tt, which is in seconds; --RR, which is in microseconds; --pp,
|
||||
which is in units of 512-byte blocks; --PP, --TT, --bb, --kk, --nn, and
|
||||
--uu, which are unscaled values; and, when in posix mode, --cc and
|
||||
--ff, which are in 512-byte increments. The return status is 0
|
||||
unless an invalid option or argument is supplied, or an error
|
||||
occurs while setting a new limit.
|
||||
|
||||
uummaasskk [--pp] [--SS] [_m_o_d_e]
|
||||
The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with
|
||||
a digit, it is interpreted as an octal number; otherwise it is
|
||||
interpreted as a symbolic mode mask similar to that accepted by
|
||||
_c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
|
||||
printed. The --SS option causes the mask to be printed in sym-
|
||||
bolic form; the default output is an octal number. If the --pp
|
||||
a digit, it is interpreted as an octal number; otherwise it is
|
||||
interpreted as a symbolic mode mask similar to that accepted by
|
||||
_c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
|
||||
printed. The --SS option causes the mask to be printed in sym-
|
||||
bolic form; the default output is an octal number. If the --pp
|
||||
option is supplied, and _m_o_d_e is omitted, the output is in a form
|
||||
that may be reused as input. The return status is 0 if the mode
|
||||
was successfully changed or if no _m_o_d_e argument was supplied,
|
||||
was successfully changed or if no _m_o_d_e argument was supplied,
|
||||
and false otherwise.
|
||||
|
||||
uunnaalliiaass [-aa] [_n_a_m_e ...]
|
||||
Remove each _n_a_m_e from the list of defined aliases. If --aa is
|
||||
supplied, all alias definitions are removed. The return value
|
||||
Remove each _n_a_m_e from the list of defined aliases. If --aa is
|
||||
supplied, all alias definitions are removed. The return value
|
||||
is true unless a supplied _n_a_m_e is not a defined alias.
|
||||
|
||||
uunnsseett [-ffvv] [-nn] [_n_a_m_e ...]
|
||||
For each _n_a_m_e, remove the corresponding variable or function.
|
||||
For each _n_a_m_e, remove the corresponding variable or function.
|
||||
If the --vv option is given, each _n_a_m_e refers to a shell variable,
|
||||
and that variable is removed. Read-only variables may not be
|
||||
unset. If --ff is specified, each _n_a_m_e refers to a shell func-
|
||||
tion, and the function definition is removed. If the --nn option
|
||||
is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute,
|
||||
_n_a_m_e will be unset rather than the variable it references. --nn
|
||||
has no effect if the --ff option is supplied. If no options are
|
||||
supplied, each _n_a_m_e refers to a variable; if there is no vari-
|
||||
able by that name, a function with that name, if any, is unset.
|
||||
Each unset variable or function is removed from the environment
|
||||
passed to subsequent commands. If any of BBAASSHH__AALLIIAASSEESS,
|
||||
and that variable is removed. Read-only variables may not be
|
||||
unset. If --ff is specified, each _n_a_m_e refers to a shell func-
|
||||
tion, and the function definition is removed. If the --nn option
|
||||
is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute,
|
||||
_n_a_m_e will be unset rather than the variable it references. --nn
|
||||
has no effect if the --ff option is supplied. If no options are
|
||||
supplied, each _n_a_m_e refers to a variable; if there is no vari-
|
||||
able by that name, a function with that name, if any, is unset.
|
||||
Each unset variable or function is removed from the environment
|
||||
passed to subsequent commands. If any of BBAASSHH__AALLIIAASSEESS,
|
||||
BBAASSHH__AARRGGVV00, BBAASSHH__CCMMDDSS, BBAASSHH__CCOOMMMMAANNDD, BBAASSHH__SSUUBBSSHHEELLLL, BBAASSHHPPIIDD,
|
||||
CCOOMMPP__WWOORRDDBBRREEAAKKSS, DDIIRRSSTTAACCKK, EEPPOOCCHHRREEAALLTTIIMMEE, EEPPOOCCHHSSEECCOONNDDSS, FFUUNNCC--
|
||||
NNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECCOONNDDSS, or SSRRAANNDDOOMM are
|
||||
CCOOMMPP__WWOORRDDBBRREEAAKKSS, DDIIRRSSTTAACCKK, EEPPOOCCHHRREEAALLTTIIMMEE, EEPPOOCCHHSSEECCOONNDDSS, FFUUNNCC--
|
||||
NNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECCOONNDDSS, or SSRRAANNDDOOMM are
|
||||
unset, they lose their special properties, even if they are sub-
|
||||
sequently reset. The exit status is true unless a _n_a_m_e is read-
|
||||
only or may not be unset.
|
||||
|
||||
wwaaiitt [--ffnn] [--pp _v_a_r_n_a_m_e] [_i_d _._._.]
|
||||
Wait for each specified child process and return its termination
|
||||
status. Each _i_d may be a process ID or a job specification; if
|
||||
a job spec is given, all processes in that job's pipeline are
|
||||
waited for. If _i_d is not given, wwaaiitt waits for all running
|
||||
background jobs and the last-executed process substitution, if
|
||||
status. Each _i_d may be a process ID or a job specification; if
|
||||
a job spec is given, all processes in that job's pipeline are
|
||||
waited for. If _i_d is not given, wwaaiitt waits for all running
|
||||
background jobs and the last-executed process substitution, if
|
||||
its process id is the same as $$!!, and the return status is zero.
|
||||
If the --nn option is supplied, wwaaiitt waits for a single job from
|
||||
If the --nn option is supplied, wwaaiitt waits for a single job from
|
||||
the list of _i_ds or, if no _i_ds are supplied, any job, to complete
|
||||
and returns its exit status. If none of the supplied arguments
|
||||
and returns its exit status. If none of the supplied arguments
|
||||
is a child of the shell, or if no arguments are supplied and the
|
||||
shell has no unwaited-for children, the exit status is 127. If
|
||||
the --pp option is supplied, the process or job identifier of the
|
||||
job for which the exit status is returned is assigned to the
|
||||
variable _v_a_r_n_a_m_e named by the option argument. The variable
|
||||
will be unset initially, before any assignment. This is useful
|
||||
only when the --nn option is supplied. Supplying the --ff option,
|
||||
when job control is enabled, forces wwaaiitt to wait for _i_d to ter-
|
||||
shell has no unwaited-for children, the exit status is 127. If
|
||||
the --pp option is supplied, the process or job identifier of the
|
||||
job for which the exit status is returned is assigned to the
|
||||
variable _v_a_r_n_a_m_e named by the option argument. The variable
|
||||
will be unset initially, before any assignment. This is useful
|
||||
only when the --nn option is supplied. Supplying the --ff option,
|
||||
when job control is enabled, forces wwaaiitt to wait for _i_d to ter-
|
||||
minate before returning its status, instead of returning when it
|
||||
changes status. If _i_d specifies a non-existent process or job,
|
||||
the return status is 127. If wwaaiitt is interrupted by a signal,
|
||||
the return status will be greater than 128, as described under
|
||||
SSIIGGNNAALLSS above. Otherwise, the return status is the exit status
|
||||
changes status. If _i_d specifies a non-existent process or job,
|
||||
the return status is 127. If wwaaiitt is interrupted by a signal,
|
||||
the return status will be greater than 128, as described under
|
||||
SSIIGGNNAALLSS above. Otherwise, the return status is the exit status
|
||||
of the last process or job waited for.
|
||||
|
||||
SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
|
||||
Bash-4.0 introduced the concept of a _s_h_e_l_l _c_o_m_p_a_t_i_b_i_l_i_t_y _l_e_v_e_l, speci-
|
||||
fied as a set of options to the shopt builtin ( ccoommppaatt3311, ccoommppaatt3322,
|
||||
ccoommppaatt4400, ccoommppaatt4411, and so on). There is only one current compatibil-
|
||||
ity level -- each option is mutually exclusive. The compatibility
|
||||
level is intended to allow users to select behavior from previous ver-
|
||||
sions that is incompatible with newer versions while they migrate
|
||||
scripts to use current features and behavior. It's intended to be a
|
||||
Bash-4.0 introduced the concept of a _s_h_e_l_l _c_o_m_p_a_t_i_b_i_l_i_t_y _l_e_v_e_l, speci-
|
||||
fied as a set of options to the shopt builtin ( ccoommppaatt3311, ccoommppaatt3322,
|
||||
ccoommppaatt4400, ccoommppaatt4411, and so on). There is only one current compatibil-
|
||||
ity level -- each option is mutually exclusive. The compatibility
|
||||
level is intended to allow users to select behavior from previous ver-
|
||||
sions that is incompatible with newer versions while they migrate
|
||||
scripts to use current features and behavior. It's intended to be a
|
||||
temporary solution.
|
||||
|
||||
This section does not mention behavior that is standard for a particu-
|
||||
lar version (e.g., setting ccoommppaatt3322 means that quoting the rhs of the
|
||||
regexp matching operator quotes special regexp characters in the word,
|
||||
This section does not mention behavior that is standard for a particu-
|
||||
lar version (e.g., setting ccoommppaatt3322 means that quoting the rhs of the
|
||||
regexp matching operator quotes special regexp characters in the word,
|
||||
which is default behavior in bash-3.2 and subsequent versions).
|
||||
|
||||
If a user enables, say, ccoommppaatt3322, it may affect the behavior of other
|
||||
compatibility levels up to and including the current compatibility
|
||||
level. The idea is that each compatibility level controls behavior
|
||||
that changed in that version of bbaasshh, but that behavior may have been
|
||||
present in earlier versions. For instance, the change to use locale-
|
||||
based comparisons with the [[[[ command came in bash-4.1, and earlier
|
||||
If a user enables, say, ccoommppaatt3322, it may affect the behavior of other
|
||||
compatibility levels up to and including the current compatibility
|
||||
level. The idea is that each compatibility level controls behavior
|
||||
that changed in that version of bbaasshh, but that behavior may have been
|
||||
present in earlier versions. For instance, the change to use locale-
|
||||
based comparisons with the [[[[ command came in bash-4.1, and earlier
|
||||
versions used ASCII-based comparisons, so enabling ccoommppaatt3322 will enable
|
||||
ASCII-based comparisons as well. That granularity may not be suffi-
|
||||
cient for all uses, and as a result users should employ compatibility
|
||||
levels carefully. Read the documentation for a particular feature to
|
||||
ASCII-based comparisons as well. That granularity may not be suffi-
|
||||
cient for all uses, and as a result users should employ compatibility
|
||||
levels carefully. Read the documentation for a particular feature to
|
||||
find out the current behavior.
|
||||
|
||||
Bash-4.3 introduced a new shell variable: BBAASSHH__CCOOMMPPAATT. The value as-
|
||||
Bash-4.3 introduced a new shell variable: BBAASSHH__CCOOMMPPAATT. The value as-
|
||||
signed to this variable (a decimal version number like 4.2, or an inte-
|
||||
ger corresponding to the ccoommppaatt_N_N option, like 42) determines the com-
|
||||
ger corresponding to the ccoommppaatt_N_N option, like 42) determines the com-
|
||||
patibility level.
|
||||
|
||||
Starting with bash-4.4, Bash has begun deprecating older compatibility
|
||||
levels. Eventually, the options will be removed in favor of BBAASSHH__CCOOMM--
|
||||
Starting with bash-4.4, Bash has begun deprecating older compatibility
|
||||
levels. Eventually, the options will be removed in favor of BBAASSHH__CCOOMM--
|
||||
PPAATT.
|
||||
|
||||
Bash-5.0 is the final version for which there will be an individual
|
||||
shopt option for the previous version. Users should use BBAASSHH__CCOOMMPPAATT on
|
||||
Bash-5.0 is the final version for which there will be an individual
|
||||
shopt option for the previous version. Users should use BBAASSHH__CCOOMMPPAATT on
|
||||
bash-5.0 and later versions.
|
||||
|
||||
The following table describes the behavior changes controlled by each
|
||||
The following table describes the behavior changes controlled by each
|
||||
compatibility level setting. The ccoommppaatt_N_N tag is used as shorthand for
|
||||
setting the compatibility level to _N_N using one of the following mecha-
|
||||
nisms. For versions prior to bash-5.0, the compatibility level may be
|
||||
set using the corresponding ccoommppaatt_N_N shopt option. For bash-4.3 and
|
||||
later versions, the BBAASSHH__CCOOMMPPAATT variable is preferred, and it is re-
|
||||
nisms. For versions prior to bash-5.0, the compatibility level may be
|
||||
set using the corresponding ccoommppaatt_N_N shopt option. For bash-4.3 and
|
||||
later versions, the BBAASSHH__CCOOMMPPAATT variable is preferred, and it is re-
|
||||
quired for bash-5.1 and later versions.
|
||||
|
||||
ccoommppaatt3311
|
||||
@@ -6588,114 +6589,114 @@ SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
|
||||
ator (=~) has no special effect
|
||||
|
||||
ccoommppaatt3322
|
||||
+o interrupting a command list such as "a ; b ; c" causes
|
||||
the execution of the next command in the list (in
|
||||
bash-4.0 and later versions, the shell acts as if it re-
|
||||
ceived the interrupt, so interrupting one command in a
|
||||
+o interrupting a command list such as "a ; b ; c" causes
|
||||
the execution of the next command in the list (in
|
||||
bash-4.0 and later versions, the shell acts as if it re-
|
||||
ceived the interrupt, so interrupting one command in a
|
||||
list aborts the execution of the entire list)
|
||||
|
||||
ccoommppaatt4400
|
||||
+o the << and >> operators to the [[[[ command do not consider
|
||||
+o the << and >> operators to the [[[[ command do not consider
|
||||
the current locale when comparing strings; they use ASCII
|
||||
ordering. Bash versions prior to bash-4.1 use ASCII col-
|
||||
lation and _s_t_r_c_m_p(3); bash-4.1 and later use the current
|
||||
lation and _s_t_r_c_m_p(3); bash-4.1 and later use the current
|
||||
locale's collation sequence and _s_t_r_c_o_l_l(3).
|
||||
|
||||
ccoommppaatt4411
|
||||
+o in _p_o_s_i_x mode, ttiimmee may be followed by options and still
|
||||
+o in _p_o_s_i_x mode, ttiimmee may be followed by options and still
|
||||
be recognized as a reserved word (this is POSIX interpre-
|
||||
tation 267)
|
||||
+o in _p_o_s_i_x mode, the parser requires that an even number of
|
||||
single quotes occur in the _w_o_r_d portion of a double-
|
||||
quoted parameter expansion and treats them specially, so
|
||||
that characters within the single quotes are considered
|
||||
single quotes occur in the _w_o_r_d portion of a double-
|
||||
quoted parameter expansion and treats them specially, so
|
||||
that characters within the single quotes are considered
|
||||
quoted (this is POSIX interpretation 221)
|
||||
|
||||
ccoommppaatt4422
|
||||
+o the replacement string in double-quoted pattern substitu-
|
||||
tion does not undergo quote removal, as it does in ver-
|
||||
tion does not undergo quote removal, as it does in ver-
|
||||
sions after bash-4.2
|
||||
+o in posix mode, single quotes are considered special when
|
||||
expanding the _w_o_r_d portion of a double-quoted parameter
|
||||
expansion and can be used to quote a closing brace or
|
||||
other special character (this is part of POSIX interpre-
|
||||
tation 221); in later versions, single quotes are not
|
||||
+o in posix mode, single quotes are considered special when
|
||||
expanding the _w_o_r_d portion of a double-quoted parameter
|
||||
expansion and can be used to quote a closing brace or
|
||||
other special character (this is part of POSIX interpre-
|
||||
tation 221); in later versions, single quotes are not
|
||||
special within double-quoted word expansions
|
||||
|
||||
ccoommppaatt4433
|
||||
+o the shell does not print a warning message if an attempt
|
||||
is made to use a quoted compound assignment as an argu-
|
||||
ment to declare (e.g., declare -a foo='(1 2)'). Later
|
||||
+o the shell does not print a warning message if an attempt
|
||||
is made to use a quoted compound assignment as an argu-
|
||||
ment to declare (e.g., declare -a foo='(1 2)'). Later
|
||||
versions warn that this usage is deprecated
|
||||
+o word expansion errors are considered non-fatal errors
|
||||
that cause the current command to fail, even in posix
|
||||
mode (the default behavior is to make them fatal errors
|
||||
+o word expansion errors are considered non-fatal errors
|
||||
that cause the current command to fail, even in posix
|
||||
mode (the default behavior is to make them fatal errors
|
||||
that cause the shell to exit)
|
||||
+o when executing a shell function, the loop state
|
||||
+o when executing a shell function, the loop state
|
||||
(while/until/etc.) is not reset, so bbrreeaakk or ccoonnttiinnuuee in
|
||||
that function will break or continue loops in the calling
|
||||
context. Bash-4.4 and later reset the loop state to pre-
|
||||
context. Bash-4.4 and later reset the loop state to pre-
|
||||
vent this
|
||||
|
||||
ccoommppaatt4444
|
||||
+o the shell sets up the values used by BBAASSHH__AARRGGVV and
|
||||
BBAASSHH__AARRGGCC so they can expand to the shell's positional
|
||||
+o the shell sets up the values used by BBAASSHH__AARRGGVV and
|
||||
BBAASSHH__AARRGGCC so they can expand to the shell's positional
|
||||
parameters even if extended debugging mode is not enabled
|
||||
+o a subshell inherits loops from its parent context, so
|
||||
bbrreeaakk or ccoonnttiinnuuee will cause the subshell to exit.
|
||||
Bash-5.0 and later reset the loop state to prevent the
|
||||
+o a subshell inherits loops from its parent context, so
|
||||
bbrreeaakk or ccoonnttiinnuuee will cause the subshell to exit.
|
||||
Bash-5.0 and later reset the loop state to prevent the
|
||||
exit
|
||||
+o variable assignments preceding builtins like eexxppoorrtt and
|
||||
+o variable assignments preceding builtins like eexxppoorrtt and
|
||||
rreeaaddoonnllyy that set attributes continue to affect variables
|
||||
with the same name in the calling environment even if the
|
||||
shell is not in posix mode
|
||||
|
||||
ccoommppaatt5500
|
||||
+o Bash-5.1 changed the way $$RRAANNDDOOMM is generated to intro-
|
||||
+o Bash-5.1 changed the way $$RRAANNDDOOMM is generated to intro-
|
||||
duce slightly more randomness. If the shell compatibility
|
||||
level is set to 50 or lower, it reverts to the method
|
||||
from bash-5.0 and previous versions, so seeding the ran-
|
||||
dom number generator by assigning a value to RRAANNDDOOMM will
|
||||
level is set to 50 or lower, it reverts to the method
|
||||
from bash-5.0 and previous versions, so seeding the ran-
|
||||
dom number generator by assigning a value to RRAANNDDOOMM will
|
||||
produce the same sequence as in bash-5.0
|
||||
+o If the command hash table is empty, bash versions prior
|
||||
to bash-5.1 printed an informational message to that ef-
|
||||
fect, even when producing output that can be reused as
|
||||
input. Bash-5.1 suppresses that message when the --ll op-
|
||||
+o If the command hash table is empty, bash versions prior
|
||||
to bash-5.1 printed an informational message to that ef-
|
||||
fect, even when producing output that can be reused as
|
||||
input. Bash-5.1 suppresses that message when the --ll op-
|
||||
tion is supplied.
|
||||
|
||||
ccoommppaatt5511
|
||||
+o The uunnsseett builtin treats attempts to unset array sub-
|
||||
scripts @@ and ** differently depending on whether the ar-
|
||||
ray is indexed or associative, and differently than in
|
||||
+o The uunnsseett builtin treats attempts to unset array sub-
|
||||
scripts @@ and ** differently depending on whether the ar-
|
||||
ray is indexed or associative, and differently than in
|
||||
previous versions.
|
||||
|
||||
RREESSTTRRIICCTTEEDD SSHHEELLLL
|
||||
If bbaasshh is started with the name rrbbaasshh, or the --rr option is supplied at
|
||||
invocation, the shell becomes restricted. A restricted shell is used
|
||||
to set up an environment more controlled than the standard shell. It
|
||||
behaves identically to bbaasshh with the exception that the following are
|
||||
invocation, the shell becomes restricted. A restricted shell is used
|
||||
to set up an environment more controlled than the standard shell. It
|
||||
behaves identically to bbaasshh with the exception that the following are
|
||||
disallowed or not performed:
|
||||
|
||||
+o changing directories with ccdd
|
||||
|
||||
+o setting or unsetting the values of SSHHEELLLL, PPAATTHH, HHIISSTTFFIILLEE, EENNVV,
|
||||
+o setting or unsetting the values of SSHHEELLLL, PPAATTHH, HHIISSTTFFIILLEE, EENNVV,
|
||||
or BBAASSHH__EENNVV
|
||||
|
||||
+o specifying command names containing //
|
||||
|
||||
+o specifying a filename containing a // as an argument to the ..
|
||||
+o specifying a filename containing a // as an argument to the ..
|
||||
builtin command
|
||||
|
||||
+o specifying a filename containing a slash as an argument to the
|
||||
+o specifying a filename containing a slash as an argument to the
|
||||
hhiissttoorryy builtin command
|
||||
|
||||
+o specifying a filename containing a slash as an argument to the
|
||||
+o specifying a filename containing a slash as an argument to the
|
||||
--pp option to the hhaasshh builtin command
|
||||
|
||||
+o importing function definitions from the shell environment at
|
||||
+o importing function definitions from the shell environment at
|
||||
startup
|
||||
|
||||
+o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at
|
||||
+o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at
|
||||
startup
|
||||
|
||||
+o redirecting output using the >, >|, <>, >&, &>, and >> redirect-
|
||||
@@ -6704,28 +6705,28 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL
|
||||
+o using the eexxeecc builtin command to replace the shell with another
|
||||
command
|
||||
|
||||
+o adding or deleting builtin commands with the --ff and --dd options
|
||||
+o adding or deleting builtin commands with the --ff and --dd options
|
||||
to the eennaabbllee builtin command
|
||||
|
||||
+o using the eennaabbllee builtin command to enable disabled shell
|
||||
+o using the eennaabbllee builtin command to enable disabled shell
|
||||
builtins
|
||||
|
||||
+o specifying the --pp option to the ccoommmmaanndd builtin command
|
||||
|
||||
+o turning off restricted mode with sseett ++rr or sshhoopptt --uu rree--
|
||||
+o turning off restricted mode with sseett ++rr or sshhoopptt --uu rree--
|
||||
ssttrriicctteedd__sshheellll.
|
||||
|
||||
These restrictions are enforced after any startup files are read.
|
||||
|
||||
When a command that is found to be a shell script is executed (see CCOOMM--
|
||||
MMAANNDD EEXXEECCUUTTIIOONN above), rrbbaasshh turns off any restrictions in the shell
|
||||
MMAANNDD EEXXEECCUUTTIIOONN above), rrbbaasshh turns off any restrictions in the shell
|
||||
spawned to execute the script.
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
_B_a_s_h _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, Brian Fox and Chet Ramey
|
||||
_T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
|
||||
_T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
|
||||
_P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e _(_P_O_S_I_X_) _P_a_r_t _2_: _S_h_e_l_l _a_n_d _U_t_i_l_i_-
|
||||
_P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e _(_P_O_S_I_X_) _P_a_r_t _2_: _S_h_e_l_l _a_n_d _U_t_i_l_i_-
|
||||
_t_i_e_s, IEEE --
|
||||
http://pubs.opengroup.org/onlinepubs/9699919799/
|
||||
http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode
|
||||
@@ -6743,10 +6744,10 @@ FFIILLEESS
|
||||
_~_/_._b_a_s_h_r_c
|
||||
The individual per-interactive-shell startup file
|
||||
_~_/_._b_a_s_h___l_o_g_o_u_t
|
||||
The individual login shell cleanup file, executed when a login
|
||||
The individual login shell cleanup file, executed when a login
|
||||
shell exits
|
||||
_~_/_._b_a_s_h___h_i_s_t_o_r_y
|
||||
The default value of HHIISSTTFFIILLEE, the file in which bash saves the
|
||||
The default value of HHIISSTTFFIILLEE, the file in which bash saves the
|
||||
command history
|
||||
_~_/_._i_n_p_u_t_r_c
|
||||
Individual _r_e_a_d_l_i_n_e initialization file
|
||||
@@ -6760,15 +6761,15 @@ AAUUTTHHOORRSS
|
||||
|
||||
BBUUGG RREEPPOORRTTSS
|
||||
If you find a bug in bbaasshh,, you should report it. But first, you should
|
||||
make sure that it really is a bug, and that it appears in the latest
|
||||
version of bbaasshh. The latest version is always available from
|
||||
make sure that it really is a bug, and that it appears in the latest
|
||||
version of bbaasshh. The latest version is always available from
|
||||
_f_t_p_:_/_/_f_t_p_._g_n_u_._o_r_g_/_p_u_b_/_g_n_u_/_b_a_s_h_/ and _h_t_t_p_:_/_/_g_i_t_._s_a_v_a_n_-
|
||||
_n_a_h_._g_n_u_._o_r_g_/_c_g_i_t_/_b_a_s_h_._g_i_t_/_s_n_a_p_s_h_o_t_/_b_a_s_h_-_m_a_s_t_e_r_._t_a_r_._g_z.
|
||||
|
||||
Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g
|
||||
command to submit a bug report. If you have a fix, you are encouraged
|
||||
to mail that as well! Suggestions and `philosophical' bug reports may
|
||||
be mailed to _b_u_g_-_b_a_s_h_@_g_n_u_._o_r_g or posted to the Usenet newsgroup
|
||||
Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g
|
||||
command to submit a bug report. If you have a fix, you are encouraged
|
||||
to mail that as well! Suggestions and `philosophical' bug reports may
|
||||
be mailed to _b_u_g_-_b_a_s_h_@_g_n_u_._o_r_g or posted to the Usenet newsgroup
|
||||
ggnnuu..bbaasshh..bbuugg.
|
||||
|
||||
ALL bug reports should include:
|
||||
@@ -6779,7 +6780,7 @@ BBUUGG RREEPPOORRTTSS
|
||||
A description of the bug behaviour
|
||||
A short script or `recipe' which exercises the bug
|
||||
|
||||
_b_a_s_h_b_u_g inserts the first three items automatically into the template
|
||||
_b_a_s_h_b_u_g inserts the first three items automatically into the template
|
||||
it provides for filing a bug report.
|
||||
|
||||
Comments and bug reports concerning this manual page should be directed
|
||||
@@ -6796,10 +6797,10 @@ BBUUGGSS
|
||||
Shell builtin commands and functions are not stoppable/restartable.
|
||||
|
||||
Compound commands and command sequences of the form `a ; b ; c' are not
|
||||
handled gracefully when process suspension is attempted. When a
|
||||
process is stopped, the shell immediately executes the next command in
|
||||
the sequence. It suffices to place the sequence of commands between
|
||||
parentheses to force it into a subshell, which may be stopped as a
|
||||
handled gracefully when process suspension is attempted. When a
|
||||
process is stopped, the shell immediately executes the next command in
|
||||
the sequence. It suffices to place the sequence of commands between
|
||||
parentheses to force it into a subshell, which may be stopped as a
|
||||
unit.
|
||||
|
||||
Array variables may not (yet) be exported.
|
||||
@@ -6808,4 +6809,4 @@ BBUUGGSS
|
||||
|
||||
|
||||
|
||||
GNU Bash 5.3 2023 July 19 BASH(1)
|
||||
GNU Bash 5.3 2023 July 26 BASH(1)
|
||||
|
||||
+68
-63
@@ -5,12 +5,14 @@
|
||||
.\" Case Western Reserve University
|
||||
.\" chet.ramey@case.edu
|
||||
.\"
|
||||
.\" Last Change: Wed Jul 19 14:23:20 EDT 2023
|
||||
.\" Last Change: Wed Jul 26 09:57:28 EDT 2023
|
||||
.\"
|
||||
.\" bash_builtins, strip all but Built-Ins section
|
||||
.\" avoid a warning about an undefined register
|
||||
.if !rzY .nr zY 0
|
||||
.if \n(zZ=1 .ig zZ
|
||||
.if \n(zY=1 .ig zY
|
||||
.TH BASH 1 "2023 July 19" "GNU Bash 5.3"
|
||||
.TH BASH 1 "2023 July 26" "GNU Bash 5.3"
|
||||
.\"
|
||||
.\" There's some problem with having a `@'
|
||||
.\" in a tagged paragraph with the BSD man macros.
|
||||
@@ -188,7 +190,7 @@ Display a usage message on standard output and exit successfully.
|
||||
Execute commands from
|
||||
.I file
|
||||
instead of the standard personal initialization file
|
||||
.I ~/.bashrc
|
||||
.I \(ti/.bashrc
|
||||
if the shell is interactive (see
|
||||
.SM
|
||||
.B INVOCATION
|
||||
@@ -206,10 +208,10 @@ library to read command lines when the shell is interactive.
|
||||
Do not read either the system-wide startup file
|
||||
.FN /etc/profile
|
||||
or any of the personal initialization files
|
||||
.IR ~/.bash_profile ,
|
||||
.IR ~/.bash_login ,
|
||||
.IR \(ti/.bash_profile ,
|
||||
.IR \(ti/.bash_login ,
|
||||
or
|
||||
.IR ~/.profile .
|
||||
.IR \(ti/.profile .
|
||||
By default,
|
||||
.B bash
|
||||
reads these files when it is invoked as a login shell (see
|
||||
@@ -219,7 +221,7 @@ below).
|
||||
.TP
|
||||
.B \-\-norc
|
||||
Do not read and execute the personal initialization file
|
||||
.I ~/.bashrc
|
||||
.I \(ti/.bashrc
|
||||
if the shell is interactive.
|
||||
This option is on by default if the shell is invoked as
|
||||
.BR sh .
|
||||
@@ -318,8 +320,8 @@ is invoked as an interactive login shell, or as a non-interactive shell
|
||||
with the \fB\-\-login\fP option, it first reads and
|
||||
executes commands from the file \fI/etc/profile\fP, if that
|
||||
file exists.
|
||||
After reading that file, it looks for \fI~/.bash_profile\fP,
|
||||
\fI~/.bash_login\fP, and \fI~/.profile\fP, in that order, and reads
|
||||
After reading that file, it looks for \fI\(ti/.bash_profile\fP,
|
||||
\fI\(ti/.bash_login\fP, and \fI\(ti/.profile\fP, in that order, and reads
|
||||
and executes commands from the first one that exists and is readable.
|
||||
The
|
||||
.B \-\-noprofile
|
||||
@@ -328,18 +330,18 @@ option may be used when the shell is started to inhibit this behavior.
|
||||
When an interactive login shell exits,
|
||||
or a non-interactive login shell executes the \fBexit\fP builtin command,
|
||||
.B bash
|
||||
reads and executes commands from the file \fI~/.bash_logout\fP, if it
|
||||
reads and executes commands from the file \fI\(ti/.bash_logout\fP, if it
|
||||
exists.
|
||||
.PP
|
||||
When an interactive shell that is not a login shell is started,
|
||||
.B bash
|
||||
reads and executes commands from \fI~/.bashrc\fP, if that file exists.
|
||||
reads and executes commands from \fI\(ti/.bashrc\fP, if that file exists.
|
||||
This may be inhibited by using the
|
||||
.B \-\-norc
|
||||
option.
|
||||
The \fB\-\-rcfile\fP \fIfile\fP option will force
|
||||
.B bash
|
||||
to read and execute commands from \fIfile\fP instead of \fI~/.bashrc\fP.
|
||||
to read and execute commands from \fIfile\fP instead of \fI\(ti/.bashrc\fP.
|
||||
.PP
|
||||
When
|
||||
.B bash
|
||||
@@ -375,7 +377,7 @@ shell with the \fB\-\-login\fP option, it first attempts to
|
||||
read and execute commands from
|
||||
.I /etc/profile
|
||||
and
|
||||
.IR ~/.profile ,
|
||||
.IR \(ti/.profile ,
|
||||
in that order.
|
||||
The
|
||||
.B \-\-noprofile
|
||||
@@ -426,7 +428,7 @@ or the secure shell daemon \fIsshd\fP.
|
||||
If
|
||||
.B bash
|
||||
determines it is being run non-interactively in this fashion,
|
||||
it reads and executes commands from \fI~/.bashrc\fP,
|
||||
it reads and executes commands from \fI\(ti/.bashrc\fP,
|
||||
if that file exists and is readable.
|
||||
It will not do this if invoked as \fBsh\fP.
|
||||
The
|
||||
@@ -745,7 +747,7 @@ Any part of the pattern may be quoted to force the quoted portion
|
||||
to be matched as a string.
|
||||
.if t .sp 0.5
|
||||
.if n .sp 1
|
||||
An additional binary operator, \fB=~\fP, is available, with the same
|
||||
An additional binary operator, \fB=\(ti\fP, is available, with the same
|
||||
precedence as \fB==\fP and \fB!=\fP.
|
||||
When it is used, the string to the right of the operator is considered
|
||||
a POSIX extended regular expression and matched accordingly
|
||||
@@ -770,7 +772,7 @@ between brackets.
|
||||
.if t .sp 0.5
|
||||
.if n .sp 1
|
||||
The pattern will match if it matches any part of the string.
|
||||
Anchor the pattern using the \fB^\fP and \fB$\fP regular expression
|
||||
Anchor the pattern using the \fB\(ha\fP and \fB$\fP regular expression
|
||||
operators to force it to match the entire string.
|
||||
The array variable
|
||||
.SM
|
||||
@@ -1662,7 +1664,7 @@ dynamically loadable builtins specified by the
|
||||
command.
|
||||
.TP
|
||||
.B BASH_REMATCH
|
||||
An array variable whose members are assigned by the \fB=~\fP binary
|
||||
An array variable whose members are assigned by the \fB=\(ti\fP binary
|
||||
operator to the \fB[[\fP conditional command.
|
||||
The element with index 0 is the portion of the string
|
||||
matching the entire regular expression.
|
||||
@@ -2151,7 +2153,7 @@ The current version is also a valid value.
|
||||
If this parameter is set when \fBbash\fP is executing a shell script,
|
||||
its value is interpreted as a filename containing commands to
|
||||
initialize the shell, as in
|
||||
.IR ~/.bashrc .
|
||||
.IR \(ti/.bashrc .
|
||||
The value of
|
||||
.SM
|
||||
.B BASH_ENV
|
||||
@@ -2192,8 +2194,8 @@ for destination directories specified by the
|
||||
.B cd
|
||||
command.
|
||||
A sample value is
|
||||
.if t \f(CW".:~:/usr"\fP.
|
||||
.if n ".:~:/usr".
|
||||
.if t \f(CW".:\(ti:/usr"\fP.
|
||||
.if n ".:\(ti:/usr".
|
||||
.TP
|
||||
.B CHILD_MAX
|
||||
Set the number of exited child status values for the shell to remember.
|
||||
@@ -2263,8 +2265,8 @@ A filename whose suffix matches one of the entries in
|
||||
.B FIGNORE
|
||||
is excluded from the list of matched filenames.
|
||||
A sample value is
|
||||
.if t \f(CW".o:~"\fP.
|
||||
.if n ".o:~".
|
||||
.if t \f(CW".o:\(ti"\fP.
|
||||
.if n ".o:\(ti".
|
||||
.TP
|
||||
.B FUNCNEST
|
||||
If set to a numeric value greater than 0, defines a maximum function
|
||||
@@ -2344,7 +2346,7 @@ not tested, and are added to the history regardless of the value of
|
||||
The name of the file in which command history is saved (see
|
||||
.SM
|
||||
.B HISTORY
|
||||
below). The default value is \fI~/.bash_history\fP. If unset, the
|
||||
below). The default value is \fI\(ti/.bash_history\fP. If unset, the
|
||||
command history is not saved when a shell exits.
|
||||
.TP
|
||||
.B HISTFILESIZE
|
||||
@@ -2457,7 +2459,7 @@ signifies the end of input to the shell.
|
||||
The filename for the
|
||||
.B readline
|
||||
startup file, overriding the default of
|
||||
.FN ~/.inputrc
|
||||
.FN \(ti/.inputrc
|
||||
(see
|
||||
.SM
|
||||
.B READLINE
|
||||
@@ -2537,7 +2539,7 @@ the current mailfile.
|
||||
Example:
|
||||
.RS
|
||||
.PP
|
||||
\fBMAILPATH\fP=\(aq/var/mail/bfox?"You have mail":~/shell\-mail?"$_ has mail!"\(aq
|
||||
\fBMAILPATH\fP=\(aq/var/mail/bfox?"You have mail":\(ti/shell\-mail?"$_ has mail!"\(aq
|
||||
.PP
|
||||
.B Bash
|
||||
can be configured to supply
|
||||
@@ -2765,7 +2767,7 @@ expansion, normally `\fB!\fP'.
|
||||
The second character is the \fIquick substitution\fP
|
||||
character, which is used as shorthand for re-running the previous
|
||||
command entered, substituting one string for another in the command.
|
||||
The default is `\fB^\fP'.
|
||||
The default is `\fB\(ha\fP'.
|
||||
The optional third character is the character
|
||||
which indicates that the remainder of the line is a comment when found
|
||||
as the first character of a word, normally `\fB#\fP'. The history
|
||||
@@ -3086,7 +3088,7 @@ command (see
|
||||
.B SHELL BUILTIN COMMANDS
|
||||
below).
|
||||
.SS Tilde Expansion
|
||||
If a word begins with an unquoted tilde character (`\fB~\fP'), all of
|
||||
If a word begins with an unquoted tilde character (`\fB\(ti\fP'), all of
|
||||
the characters preceding the first unquoted slash (or all characters,
|
||||
if there is no unquoted slash) are considered a \fItilde-prefix\fP.
|
||||
If none of the characters in the tilde-prefix are quoted, the
|
||||
@@ -3104,11 +3106,11 @@ substituted instead.
|
||||
Otherwise, the tilde-prefix is replaced with the home directory
|
||||
associated with the specified login name.
|
||||
.PP
|
||||
If the tilde-prefix is a `~+', the value of the shell variable
|
||||
If the tilde-prefix is a `\(ti+', the value of the shell variable
|
||||
.SM
|
||||
.B PWD
|
||||
replaces the tilde-prefix.
|
||||
If the tilde-prefix is a `~\-', the value of the shell variable
|
||||
If the tilde-prefix is a `\(ti\-', the value of the shell variable
|
||||
.SM
|
||||
.BR OLDPWD ,
|
||||
if it is set, is substituted.
|
||||
@@ -3497,10 +3499,10 @@ or
|
||||
the substitution operation is applied to each member of the
|
||||
array in turn, and the expansion is the resultant list.
|
||||
.TP
|
||||
${\fIparameter\fP\fB^\fP\fIpattern\fP}
|
||||
${\fIparameter\fP\fB\(ha\fP\fIpattern\fP}
|
||||
.PD 0
|
||||
.TP
|
||||
${\fIparameter\fP\fB^^\fP\fIpattern\fP}
|
||||
${\fIparameter\fP\fB\(ha\(ha\fP\fIpattern\fP}
|
||||
.TP
|
||||
${\fIparameter\fP\fB,\fP\fIpattern\fP}
|
||||
.TP
|
||||
@@ -3513,11 +3515,11 @@ pathname expansion.
|
||||
Each character in the expanded value of \fIparameter\fP is tested against
|
||||
\fIpattern\fP, and, if it matches the pattern, its case is converted.
|
||||
The pattern should not attempt to match more than one character.
|
||||
The \fB^\fP operator converts lowercase letters matching \fIpattern\fP
|
||||
The \fB\(ha\fP operator converts lowercase letters matching \fIpattern\fP
|
||||
to uppercase; the \fB,\fP operator converts matching uppercase letters
|
||||
to lowercase.
|
||||
The \fB^^\fP and \fB,,\fP expansions convert each matched character in the
|
||||
expanded value; the \fB^\fP and \fB,\fP expansions match and convert only
|
||||
The \fB\(ha\(ha\fP and \fB,,\fP expansions convert each matched character in the
|
||||
expanded value; the \fB\(ha\fP and \fB,\fP expansions match and convert only
|
||||
the first character in the expanded value.
|
||||
If \fIpattern\fP is omitted, it is treated like a \fB?\fP, which matches
|
||||
every character.
|
||||
@@ -4003,7 +4005,7 @@ is matched. If the first character following the
|
||||
is a
|
||||
.B !
|
||||
or a
|
||||
.B ^
|
||||
.B \(ha
|
||||
then any character not enclosed is matched.
|
||||
The sorting order of characters in range expressions,
|
||||
and the characters included in the range,
|
||||
@@ -4772,7 +4774,7 @@ unary minus and plus
|
||||
.B ++\fIid\fP \-\-\fIid\fP
|
||||
variable pre-increment and pre-decrement
|
||||
.TP
|
||||
.B ! ~
|
||||
.B ! \(ti
|
||||
logical and bitwise negation
|
||||
.TP
|
||||
.B **
|
||||
@@ -4796,7 +4798,7 @@ equality and inequality
|
||||
.B &
|
||||
bitwise AND
|
||||
.TP
|
||||
.B ^
|
||||
.B \(ha
|
||||
bitwise exclusive OR
|
||||
.TP
|
||||
.B |
|
||||
@@ -4811,7 +4813,7 @@ logical OR
|
||||
.B \fIexpr\fP?\fIexpr\fP:\fIexpr\fP
|
||||
conditional operator
|
||||
.TP
|
||||
.B = *= /= %= += \-= <<= >>= &= ^= |=
|
||||
.B = *= /= %= += \-= <<= >>= &= \(ha= |=
|
||||
assignment
|
||||
.TP
|
||||
.B \fIexpr1\fP , \fIexpr2\fP
|
||||
@@ -5412,10 +5414,10 @@ command to complete, the shell receives keyboard-generated signals
|
||||
such as
|
||||
.SM
|
||||
.B SIGINT
|
||||
(usually generated by \fB^C\fP) that users commonly intend to send
|
||||
(usually generated by \fB\(haC\fP) that users commonly intend to send
|
||||
to that command.
|
||||
This happens because the shell and the command are in the
|
||||
same process group as the terminal, and \fB^C\fP sends
|
||||
same process group as the terminal, and \fB\(haC\fP sends
|
||||
.SM
|
||||
.B SIGINT
|
||||
to all processes in that process group.
|
||||
@@ -5527,14 +5529,14 @@ contains facilities to use it.
|
||||
Typing the
|
||||
.I suspend
|
||||
character (typically
|
||||
.BR ^Z ,
|
||||
.BR \(haZ ,
|
||||
Control-Z) while a process is running
|
||||
causes that process to be stopped and returns control to
|
||||
.BR bash .
|
||||
Typing the
|
||||
.I "delayed suspend"
|
||||
character (typically
|
||||
.BR ^Y ,
|
||||
.BR \(haY ,
|
||||
Control-Y) causes the process to be stopped when it
|
||||
attempts to read input from the terminal, and control to
|
||||
be returned to
|
||||
@@ -5546,7 +5548,7 @@ command to continue it in the background, the
|
||||
command to continue it in the foreground, or
|
||||
the
|
||||
.B kill
|
||||
command to kill it. A \fB^Z\fP takes effect immediately,
|
||||
command to kill it. A \fB\(haZ\fP takes effect immediately,
|
||||
and has the additional side effect of causing pending output
|
||||
and typeahead to be discarded.
|
||||
.PP
|
||||
@@ -5860,7 +5862,7 @@ The name of this file is taken from the value of the
|
||||
.SM
|
||||
.B INPUTRC
|
||||
variable. If that variable is unset, the default is
|
||||
.IR ~/.inputrc .
|
||||
.IR \(ti/.inputrc .
|
||||
If that file does not exist or cannot be read, the ultimate default is
|
||||
.IR /etc/inputrc .
|
||||
When a program which uses the readline library starts up, the
|
||||
@@ -5959,7 +5961,7 @@ are not recognized.
|
||||
.br
|
||||
"\eC\-x\eC\-r": re\-read\-init\-file
|
||||
.br
|
||||
"\ee[11~": "Function Key 1"
|
||||
"\ee[11\(ti": "Function Key 1"
|
||||
.RE
|
||||
.PP
|
||||
In this example,
|
||||
@@ -5970,7 +5972,7 @@ is again bound to the function
|
||||
is bound to the function
|
||||
.BR re\-read\-init\-file ,
|
||||
and
|
||||
.I "ESC [ 1 1 ~"
|
||||
.I "ESC [ 1 1 \(ti"
|
||||
is bound to insert the text
|
||||
.if t \f(CWFunction Key 1\fP.
|
||||
.if n ``Function Key 1''.
|
||||
@@ -6963,7 +6965,7 @@ Attempt to perform completion on the text before point.
|
||||
.B Bash
|
||||
attempts completion treating the text as a variable (if the
|
||||
text begins with \fB$\fP), username (if the text begins with
|
||||
\fB~\fP), hostname (if the text begins with \fB@\fP), or
|
||||
\fB\(ti\fP), hostname (if the text begins with \fB@\fP), or
|
||||
command (including aliases and functions) in turn. If none
|
||||
of these produces a match, filename completion is attempted.
|
||||
.TP
|
||||
@@ -7008,11 +7010,11 @@ Attempt filename completion on the text before point.
|
||||
List the possible completions of the text before point,
|
||||
treating it as a filename.
|
||||
.TP
|
||||
.B complete\-username (M\-~)
|
||||
.B complete\-username (M\-\(ti)
|
||||
Attempt completion on the text before point, treating
|
||||
it as a username.
|
||||
.TP
|
||||
.B possible\-username\-completions (C\-x ~)
|
||||
.B possible\-username\-completions (C\-x \(ti)
|
||||
List the possible completions of the text before point,
|
||||
treating it as a username.
|
||||
.TP
|
||||
@@ -7422,7 +7424,7 @@ On startup, the history is initialized from the file named by
|
||||
the variable
|
||||
.SM
|
||||
.B HISTFILE
|
||||
(default \fI~/.bash_history\fP).
|
||||
(default \fI\(ti/.bash_history\fP).
|
||||
The file named by the value of
|
||||
.SM
|
||||
.B HISTFILE
|
||||
@@ -7650,13 +7652,13 @@ is followed immediately by a newline.
|
||||
If \fIstring\fP is missing, the string from the most recent search is used;
|
||||
it is an error if there is no previous search string.
|
||||
.TP
|
||||
.B \d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u
|
||||
.B \d\s+2\(ha\s-2\u\fIstring1\fP\d\s+2\(ha\s-2\u\fIstring2\fP\d\s+2\(ha\s-2\u
|
||||
Quick substitution. Repeat the previous command, replacing
|
||||
.I string1
|
||||
with
|
||||
.IR string2 .
|
||||
Equivalent to
|
||||
``!!:s\d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u''
|
||||
``!!:s\d\s+2\(ha\s-2\u\fIstring1\fP\d\s+2\(ha\s-2\u\fIstring2\fP\d\s+2\(ha\s-2\u''
|
||||
(see \fBModifiers\fP below).
|
||||
.TP
|
||||
.B !#
|
||||
@@ -7668,7 +7670,7 @@ A
|
||||
.B :
|
||||
separates the event specification from the word designator.
|
||||
It may be omitted if the word designator begins with a
|
||||
.BR ^ ,
|
||||
.BR \(ha ,
|
||||
.BR $ ,
|
||||
.BR * ,
|
||||
.BR \- ,
|
||||
@@ -7687,7 +7689,7 @@ word.
|
||||
.I n
|
||||
The \fIn\fRth word.
|
||||
.TP
|
||||
.B ^
|
||||
.B \(ha
|
||||
The first argument. That is, word 1.
|
||||
.TP
|
||||
.B $
|
||||
@@ -8724,8 +8726,9 @@ the following backslash-escaped characters is enabled. The
|
||||
option disables the interpretation of these escape characters,
|
||||
even on systems where they are interpreted by default.
|
||||
The \fBxpg_echo\fP shell option may be used to
|
||||
dynamically determine whether or not \fBecho\fP expands these
|
||||
escape characters by default.
|
||||
dynamically determine whether or not \fBecho\fP
|
||||
interprets any options
|
||||
and expands these escape characters by default.
|
||||
.B echo
|
||||
does not interpret \fB\-\-\fP to mean the end of options.
|
||||
.B echo
|
||||
@@ -10912,6 +10915,8 @@ instead of leaving them open when the command completes.
|
||||
.B xpg_echo
|
||||
If set, the \fBecho\fP builtin expands backslash-escape sequences
|
||||
by default.
|
||||
If the \fBposix\fP shell option is also enabled, \fBecho\fP does not
|
||||
interpret any options.
|
||||
.RE
|
||||
.PD
|
||||
.TP
|
||||
@@ -11627,7 +11632,7 @@ and it is required for bash-5.1 and later versions.
|
||||
.PD 0
|
||||
.RS
|
||||
.IP \(bu
|
||||
quoting the rhs of the \fB[[\fP command's regexp matching operator (=~)
|
||||
quoting the rhs of the \fB[[\fP command's regexp matching operator (=\(ti)
|
||||
has no special effect
|
||||
.RE
|
||||
.PD
|
||||
@@ -11877,7 +11882,7 @@ script.
|
||||
\fIPortable Operating System Interface (POSIX) Part 2: Shell and Utilities\fP, IEEE --
|
||||
http://pubs.opengroup.org/onlinepubs/9699919799/
|
||||
.TP
|
||||
http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode
|
||||
http://tiswww.case.edu/\(tichet/bash/POSIX -- a description of posix mode
|
||||
.TP
|
||||
\fIsh\fP(1), \fIksh\fP(1), \fIcsh\fP(1)
|
||||
.TP
|
||||
@@ -11894,20 +11899,20 @@ The \fBbash\fP executable
|
||||
.FN /etc/profile
|
||||
The systemwide initialization file, executed for login shells
|
||||
.TP
|
||||
.FN ~/.bash_profile
|
||||
.FN \(ti/.bash_profile
|
||||
The personal initialization file, executed for login shells
|
||||
.TP
|
||||
.FN ~/.bashrc
|
||||
.FN \(ti/.bashrc
|
||||
The individual per-interactive-shell startup file
|
||||
.TP
|
||||
.FN ~/.bash_logout
|
||||
.FN \(ti/.bash_logout
|
||||
The individual login shell cleanup file, executed when a login shell exits
|
||||
.TP
|
||||
.FN ~/.bash_history
|
||||
.FN \(ti/.bash_history
|
||||
The default value of \fBHISTFILE\fP, the file in which bash saves the
|
||||
command history
|
||||
.TP
|
||||
.FN ~/.inputrc
|
||||
.FN \(ti/.inputrc
|
||||
Individual \fIreadline\fP initialization file
|
||||
.PD
|
||||
.SH AUTHORS
|
||||
|
||||
+66
-63
@@ -3,7 +3,7 @@
|
||||
</HEAD>
|
||||
<BODY><TABLE WIDTH=100%>
|
||||
<TR>
|
||||
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2023 July 19<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2023 July 26<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
</TR>
|
||||
</TABLE>
|
||||
<BR><A HREF="#index">Index</A>
|
||||
@@ -237,7 +237,7 @@ Execute commands from
|
||||
<I>file</I>
|
||||
|
||||
instead of the standard personal initialization file
|
||||
<A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>
|
||||
<I>ti/.bashrc</I>
|
||||
|
||||
if the shell is interactive (see
|
||||
<FONT SIZE=-1><B>INVOCATION</B>
|
||||
@@ -263,12 +263,12 @@ Do not read either the system-wide startup file
|
||||
<A HREF="file:/etc/profile"><I>/etc/profile</I></A>
|
||||
|
||||
or any of the personal initialization files
|
||||
<A HREF="file:~/.bash_profile"><I>~/.bash_profile</I></A>,
|
||||
<I>ti/.bash_profile</I>,
|
||||
|
||||
<A HREF="file:~/.bash_login"><I>~/.bash_login</I></A>,
|
||||
<I>ti/.bash_login</I>,
|
||||
|
||||
or
|
||||
<A HREF="file:~/.profile"><I>~/.profile</I></A>.
|
||||
<I>ti/.profile</I>.
|
||||
|
||||
By default,
|
||||
<B>bash</B>
|
||||
@@ -282,7 +282,7 @@ below).
|
||||
|
||||
<DD>
|
||||
Do not read and execute the personal initialization file
|
||||
<A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>
|
||||
<I>ti/.bashrc</I>
|
||||
|
||||
if the shell is interactive.
|
||||
This option is on by default if the shell is invoked as
|
||||
@@ -418,8 +418,8 @@ is invoked as an interactive login shell, or as a non-interactive shell
|
||||
with the <B>--login</B> option, it first reads and
|
||||
executes commands from the file <A HREF="file:/etc/profile"><I>/etc/profile</I></A>, if that
|
||||
file exists.
|
||||
After reading that file, it looks for <A HREF="file:~/.bash_profile"><I>~/.bash_profile</I></A>,
|
||||
<A HREF="file:~/.bash_login"><I>~/.bash_login</I></A>, and <A HREF="file:~/.profile"><I>~/.profile</I></A>, in that order, and reads
|
||||
After reading that file, it looks for <I>ti/.bash_profile</I>,
|
||||
<I>ti/.bash_login</I>, and <I>ti/.profile</I>, in that order, and reads
|
||||
and executes commands from the first one that exists and is readable.
|
||||
The
|
||||
<B>--noprofile</B>
|
||||
@@ -431,14 +431,14 @@ When an interactive login shell exits,
|
||||
or a non-interactive login shell executes the <B>exit</B> builtin command,
|
||||
<B>bash</B>
|
||||
|
||||
reads and executes commands from the file <A HREF="file:~/.bash_logout"><I>~/.bash_logout</I></A>, if it
|
||||
reads and executes commands from the file <I>ti/.bash_logout</I>, if it
|
||||
exists.
|
||||
<P>
|
||||
|
||||
When an interactive shell that is not a login shell is started,
|
||||
<B>bash</B>
|
||||
|
||||
reads and executes commands from <A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>, if that file exists.
|
||||
reads and executes commands from <I>ti/.bashrc</I>, if that file exists.
|
||||
This may be inhibited by using the
|
||||
<B>--norc</B>
|
||||
|
||||
@@ -446,7 +446,7 @@ option.
|
||||
The <B>--rcfile</B> <I>file</I> option will force
|
||||
<B>bash</B>
|
||||
|
||||
to read and execute commands from <I>file</I> instead of <A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>.
|
||||
to read and execute commands from <I>file</I> instead of <I>ti/.bashrc</I>.
|
||||
<P>
|
||||
|
||||
When
|
||||
@@ -493,7 +493,7 @@ read and execute commands from
|
||||
<A HREF="file:/etc/profile"><I>/etc/profile</I></A>
|
||||
|
||||
and
|
||||
<A HREF="file:~/.profile"><I>~/.profile</I></A>,
|
||||
<I>ti/.profile</I>,
|
||||
|
||||
in that order.
|
||||
The
|
||||
@@ -563,7 +563,7 @@ If
|
||||
<B>bash</B>
|
||||
|
||||
determines it is being run non-interactively in this fashion,
|
||||
it reads and executes commands from <A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>,
|
||||
it reads and executes commands from <I>ti/.bashrc</I>,
|
||||
if that file exists and is readable.
|
||||
It will not do this if invoked as <B>sh</B>.
|
||||
The
|
||||
@@ -976,7 +976,7 @@ to be matched as a string.
|
||||
<P>
|
||||
|
||||
|
||||
An additional binary operator, <B>=~</B>, is available, with the same
|
||||
An additional binary operator, <B>=ti</B>, is available, with the same
|
||||
precedence as <B>==</B> and <B>!=</B>.
|
||||
When it is used, the string to the right of the operator is considered
|
||||
a POSIX extended regular expression and matched accordingly
|
||||
@@ -1003,7 +1003,7 @@ between brackets.
|
||||
|
||||
|
||||
The pattern will match if it matches any part of the string.
|
||||
Anchor the pattern using the <B>^</B> and <B>$</B> regular expression
|
||||
Anchor the pattern using the <B>ha</B> and <B>$</B> regular expression
|
||||
operators to force it to match the entire string.
|
||||
The array variable
|
||||
<FONT SIZE=-1><B>BASH_REMATCH</B>
|
||||
@@ -2120,7 +2120,7 @@ command.
|
||||
<DT><B>BASH_REMATCH</B>
|
||||
|
||||
<DD>
|
||||
An array variable whose members are assigned by the <B>=~</B> binary
|
||||
An array variable whose members are assigned by the <B>=ti</B> binary
|
||||
operator to the <B>[[</B> conditional command.
|
||||
The element with index 0 is the portion of the string
|
||||
matching the entire regular expression.
|
||||
@@ -2727,7 +2727,7 @@ The current version is also a valid value.
|
||||
If this parameter is set when <B>bash</B> is executing a shell script,
|
||||
its value is interpreted as a filename containing commands to
|
||||
initialize the shell, as in
|
||||
<A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>.
|
||||
<I>ti/.bashrc</I>.
|
||||
|
||||
The value of
|
||||
<FONT SIZE=-1><B>BASH_ENV</B>
|
||||
@@ -2778,7 +2778,7 @@ for destination directories specified by the
|
||||
|
||||
command.
|
||||
A sample value is
|
||||
<TT>".:~:/usr"</TT>.
|
||||
<TT>".:ti:/usr"</TT>.
|
||||
|
||||
<DT><B>CHILD_MAX</B>
|
||||
|
||||
@@ -2863,7 +2863,7 @@ A filename whose suffix matches one of the entries in
|
||||
</FONT>
|
||||
is excluded from the list of matched filenames.
|
||||
A sample value is
|
||||
<TT>".o:~"</TT>.
|
||||
<TT>".o:ti"</TT>.
|
||||
|
||||
<DT><B>FUNCNEST</B>
|
||||
|
||||
@@ -2965,7 +2965,7 @@ The name of the file in which command history is saved (see
|
||||
<FONT SIZE=-1><B>HISTORY</B>
|
||||
|
||||
</FONT>
|
||||
below). The default value is <A HREF="file:~/.bash_history"><I>~/.bash_history</I></A>. If unset, the
|
||||
below). The default value is <I>ti/.bash_history</I>. If unset, the
|
||||
command history is not saved when a shell exits.
|
||||
<DT><B>HISTFILESIZE</B>
|
||||
|
||||
@@ -3105,7 +3105,7 @@ The filename for the
|
||||
|
||||
startup file, overriding the default of
|
||||
|
||||
<A HREF="file:~/.inputrc"><I>~/.inputrc</I></A>
|
||||
<I>ti/.inputrc</I>
|
||||
|
||||
(see
|
||||
<FONT SIZE=-1><B>READLINE</B>
|
||||
@@ -3206,7 +3206,7 @@ Example:
|
||||
<DL COMPACT><DT><DD>
|
||||
<P>
|
||||
|
||||
<B>MAILPATH</B>=aq/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"aq
|
||||
<B>MAILPATH</B>=aq/var/mail/bfox?"You have mail":ti/shell-mail?"$_ has mail!"aq
|
||||
<P>
|
||||
|
||||
<B>Bash</B>
|
||||
@@ -3489,7 +3489,7 @@ expansion, normally `<B>!</B>'.
|
||||
The second character is the <I>quick substitution</I>
|
||||
character, which is used as shorthand for re-running the previous
|
||||
command entered, substituting one string for another in the command.
|
||||
The default is `<B>^</B>'.
|
||||
The default is `<B>ha</B>'.
|
||||
The optional third character is the character
|
||||
which indicates that the remainder of the line is a comment when found
|
||||
as the first character of a word, normally `<B>#</B>'. The history
|
||||
@@ -3898,7 +3898,7 @@ below).
|
||||
<A NAME="lbBA"> </A>
|
||||
<H4>Tilde Expansion</H4>
|
||||
|
||||
If a word begins with an unquoted tilde character (`<B>~</B>'), all of
|
||||
If a word begins with an unquoted tilde character (`<B>ti</B>'), all of
|
||||
the characters preceding the first unquoted slash (or all characters,
|
||||
if there is no unquoted slash) are considered a <I>tilde-prefix</I>.
|
||||
If none of the characters in the tilde-prefix are quoted, the
|
||||
@@ -3919,12 +3919,12 @@ Otherwise, the tilde-prefix is replaced with the home directory
|
||||
associated with the specified login name.
|
||||
<P>
|
||||
|
||||
If the tilde-prefix is a `~+', the value of the shell variable
|
||||
If the tilde-prefix is a `ti+', the value of the shell variable
|
||||
<FONT SIZE=-1><B>PWD</B>
|
||||
|
||||
</FONT>
|
||||
replaces the tilde-prefix.
|
||||
If the tilde-prefix is a `~-', the value of the shell variable
|
||||
If the tilde-prefix is a `ti-', the value of the shell variable
|
||||
<FONT SIZE=-1><B>OLDPWD</B>,
|
||||
|
||||
</FONT>
|
||||
@@ -4364,9 +4364,9 @@ or
|
||||
|
||||
the substitution operation is applied to each member of the
|
||||
array in turn, and the expansion is the resultant list.
|
||||
<DT>${<I>parameter</I><B>^</B><I>pattern</I>}<DD>
|
||||
<DT>${<I>parameter</I><B>ha</B><I>pattern</I>}<DD>
|
||||
|
||||
<DT>${<I>parameter</I><B>^^</B><I>pattern</I>}<DD>
|
||||
<DT>${<I>parameter</I><B>haha</B><I>pattern</I>}<DD>
|
||||
<DT>${<I>parameter</I><B>,</B><I>pattern</I>}<DD>
|
||||
<DT>${<I>parameter</I><B>,,</B><I>pattern</I>}<DD>
|
||||
|
||||
@@ -4377,11 +4377,11 @@ pathname expansion.
|
||||
Each character in the expanded value of <I>parameter</I> is tested against
|
||||
<I>pattern</I>, and, if it matches the pattern, its case is converted.
|
||||
The pattern should not attempt to match more than one character.
|
||||
The <B>^</B> operator converts lowercase letters matching <I>pattern</I>
|
||||
The <B>ha</B> operator converts lowercase letters matching <I>pattern</I>
|
||||
to uppercase; the <B>,</B> operator converts matching uppercase letters
|
||||
to lowercase.
|
||||
The <B>^^</B> and <B>,,</B> expansions convert each matched character in the
|
||||
expanded value; the <B>^</B> and <B>,</B> expansions match and convert only
|
||||
The <B>haha</B> and <B>,,</B> expansions convert each matched character in the
|
||||
expanded value; the <B>ha</B> and <B>,</B> expansions match and convert only
|
||||
the first character in the expanded value.
|
||||
If <I>pattern</I> is omitted, it is treated like a <B>?</B>, which matches
|
||||
every character.
|
||||
@@ -5015,7 +5015,7 @@ is a
|
||||
<B>!</B>
|
||||
|
||||
or a
|
||||
<B>^</B>
|
||||
<B>ha</B>
|
||||
|
||||
then any character not enclosed is matched.
|
||||
The sorting order of characters in range expressions,
|
||||
@@ -6033,7 +6033,7 @@ unary minus and plus
|
||||
|
||||
<DD>
|
||||
variable pre-increment and pre-decrement
|
||||
<DT><B>! ~</B>
|
||||
<DT><B>! ti</B>
|
||||
|
||||
<DD>
|
||||
logical and bitwise negation
|
||||
@@ -6065,7 +6065,7 @@ equality and inequality
|
||||
|
||||
<DD>
|
||||
bitwise AND
|
||||
<DT><B>^</B>
|
||||
<DT><B>ha</B>
|
||||
|
||||
<DD>
|
||||
bitwise exclusive OR
|
||||
@@ -6085,7 +6085,7 @@ logical OR
|
||||
|
||||
<DD>
|
||||
conditional operator
|
||||
<DT><B>= *= /= %= += -= <<= >>= &= ^= |=</B>
|
||||
<DT><B>= *= /= %= += -= <<= >>= &= ha= |=</B>
|
||||
|
||||
<DD>
|
||||
assignment
|
||||
@@ -6834,10 +6834,10 @@ such as
|
||||
<FONT SIZE=-1><B>SIGINT</B>
|
||||
|
||||
</FONT>
|
||||
(usually generated by <B>^C</B>) that users commonly intend to send
|
||||
(usually generated by <B>haC</B>) that users commonly intend to send
|
||||
to that command.
|
||||
This happens because the shell and the command are in the
|
||||
same process group as the terminal, and <B>^C</B> sends
|
||||
same process group as the terminal, and <B>haC</B> sends
|
||||
<FONT SIZE=-1><B>SIGINT</B>
|
||||
|
||||
</FONT>
|
||||
@@ -6986,7 +6986,7 @@ Typing the
|
||||
<I>suspend</I>
|
||||
|
||||
character (typically
|
||||
<B>^Z</B>,
|
||||
<B>haZ</B>,
|
||||
|
||||
Control-Z) while a process is running
|
||||
causes that process to be stopped and returns control to
|
||||
@@ -6996,7 +6996,7 @@ Typing the
|
||||
<I>delayed suspend</I>
|
||||
|
||||
character (typically
|
||||
<B>^Y</B>,
|
||||
<B>haY</B>,
|
||||
|
||||
Control-Y) causes the process to be stopped when it
|
||||
attempts to read input from the terminal, and control to
|
||||
@@ -7013,7 +7013,7 @@ command to continue it in the foreground, or
|
||||
the
|
||||
<B>kill</B>
|
||||
|
||||
command to kill it. A <B>^Z</B> takes effect immediately,
|
||||
command to kill it. A <B>haZ</B> takes effect immediately,
|
||||
and has the additional side effect of causing pending output
|
||||
and typeahead to be discarded.
|
||||
<P>
|
||||
@@ -7430,7 +7430,7 @@ The name of this file is taken from the value of the
|
||||
|
||||
</FONT>
|
||||
variable. If that variable is unset, the default is
|
||||
<A HREF="file:~/.inputrc"><I>~/.inputrc</I></A>.
|
||||
<I>ti/.inputrc</I>.
|
||||
|
||||
If that file does not exist or cannot be read, the ultimate default is
|
||||
<A HREF="file:/etc/inputrc"><I>/etc/inputrc</I></A>.
|
||||
@@ -7570,7 +7570,7 @@ are not recognized.
|
||||
"\C-x\C-r": re-read-init-file
|
||||
<BR>
|
||||
|
||||
"\e[11~": "Function Key 1"
|
||||
"\e[11ti": "Function Key 1"
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
@@ -7587,7 +7587,7 @@ is bound to the function
|
||||
<B>re-read-init-file</B>,
|
||||
|
||||
and
|
||||
<I>ESC [ 1 1 ~</I>
|
||||
<I>ESC [ 1 1 ti</I>
|
||||
|
||||
is bound to insert the text
|
||||
<TT>Function Key 1</TT>.
|
||||
@@ -8818,7 +8818,7 @@ Attempt to perform completion on the text before point.
|
||||
|
||||
attempts completion treating the text as a variable (if the
|
||||
text begins with <B>$</B>), username (if the text begins with
|
||||
<B>~</B>), hostname (if the text begins with <B>@</B>), or
|
||||
<B>ti</B>), hostname (if the text begins with <B>@</B>), or
|
||||
command (including aliases and functions) in turn. If none
|
||||
of these produces a match, filename completion is attempted.
|
||||
<DT><B>possible-completions (M-?)</B>
|
||||
@@ -8869,12 +8869,12 @@ Attempt filename completion on the text before point.
|
||||
<DD>
|
||||
List the possible completions of the text before point,
|
||||
treating it as a filename.
|
||||
<DT><B>complete-username (M-~)</B>
|
||||
<DT><B>complete-username (M-ti)</B>
|
||||
|
||||
<DD>
|
||||
Attempt completion on the text before point, treating
|
||||
it as a username.
|
||||
<DT><B>possible-username-completions (C-x ~)</B>
|
||||
<DT><B>possible-username-completions (C-x ti)</B>
|
||||
|
||||
<DD>
|
||||
List the possible completions of the text before point,
|
||||
@@ -9389,7 +9389,7 @@ the variable
|
||||
<FONT SIZE=-1><B>HISTFILE</B>
|
||||
|
||||
</FONT>
|
||||
(default <A HREF="file:~/.bash_history"><I>~/.bash_history</I></A>).
|
||||
(default <I>ti/.bash_history</I>).
|
||||
The file named by the value of
|
||||
<FONT SIZE=-1><B>HISTFILE</B>
|
||||
|
||||
@@ -9680,7 +9680,7 @@ The trailing <B>?</B> may be omitted if
|
||||
is followed immediately by a newline.
|
||||
If <I>string</I> is missing, the string from the most recent search is used;
|
||||
it is an error if there is no previous search string.
|
||||
<DT><B></B><FONT SIZE=+2><B>^</B></FONT><B></B><I>string1</I><FONT SIZE=+2>^</FONT><I>string2</I><FONT SIZE=+2>^</FONT>
|
||||
<DT><B></B><FONT SIZE=+2><B>ha</B></FONT><B></B><I>string1</I><FONT SIZE=+2>ha</FONT><I>string2</I><FONT SIZE=+2>ha</FONT>
|
||||
|
||||
<DD>
|
||||
Quick substitution. Repeat the previous command, replacing
|
||||
@@ -9690,7 +9690,7 @@ with
|
||||
<I>string2</I>.
|
||||
|
||||
Equivalent to
|
||||
``!!:s<FONT SIZE=+2>^</FONT><I>string1</I><FONT SIZE=+2>^</FONT><I>string2</I><FONT SIZE=+2>^</FONT>''
|
||||
``!!:s<FONT SIZE=+2>ha</FONT><I>string1</I><FONT SIZE=+2>ha</FONT><I>string2</I><FONT SIZE=+2>ha</FONT>''
|
||||
(see <B>Modifiers</B> below).
|
||||
<DT><B>!#</B>
|
||||
|
||||
@@ -9707,7 +9707,7 @@ A
|
||||
|
||||
separates the event specification from the word designator.
|
||||
It may be omitted if the word designator begins with a
|
||||
<B>^</B>,
|
||||
<B>ha</B>,
|
||||
|
||||
<B>$</B>,
|
||||
|
||||
@@ -9734,7 +9734,7 @@ word.
|
||||
|
||||
<DD>
|
||||
The <I>n</I>th word.
|
||||
<DT><B>^</B>
|
||||
<DT><B>ha</B>
|
||||
|
||||
<DD>
|
||||
The first argument. That is, word 1.
|
||||
@@ -10994,8 +10994,9 @@ the following backslash-escaped characters is enabled. The
|
||||
option disables the interpretation of these escape characters,
|
||||
even on systems where they are interpreted by default.
|
||||
The <B>xpg_echo</B> shell option may be used to
|
||||
dynamically determine whether or not <B>echo</B> expands these
|
||||
escape characters by default.
|
||||
dynamically determine whether or not <B>echo</B>
|
||||
interprets any options
|
||||
and expands these escape characters by default.
|
||||
<B>echo</B>
|
||||
|
||||
does not interpret <B>--</B> to mean the end of options.
|
||||
@@ -13718,6 +13719,8 @@ instead of leaving them open when the command completes.
|
||||
<DD>
|
||||
If set, the <B>echo</B> builtin expands backslash-escape sequences
|
||||
by default.
|
||||
If the <B>posix</B> shell option is also enabled, <B>echo</B> does not
|
||||
interpret any options.
|
||||
</DL></DL>
|
||||
|
||||
|
||||
@@ -14610,7 +14613,7 @@ and it is required for bash-5.1 and later versions.
|
||||
<DL COMPACT><DT><DD>
|
||||
<DL COMPACT>
|
||||
<DT>*<DD>
|
||||
quoting the rhs of the <B>[[</B> command's regexp matching operator (=~)
|
||||
quoting the rhs of the <B>[[</B> command's regexp matching operator (=ti)
|
||||
has no special effect
|
||||
</DL></DL>
|
||||
|
||||
@@ -14906,7 +14909,7 @@ script.
|
||||
<DT><I>The Gnu History Library</I>, Brian Fox and Chet Ramey<DD>
|
||||
<DT><I>Portable Operating System Interface (POSIX) Part 2: Shell and Utilities</I>, IEEE --<DD>
|
||||
<A HREF="http://pubs.opengroup.org/onlinepubs/9699919799/">http://pubs.opengroup.org/onlinepubs/9699919799/</A>
|
||||
<DT><A HREF="http://tiswww.case.edu/~chet/bash/POSIX">http://tiswww.case.edu/~chet/bash/POSIX</A> -- a description of posix mode<DD>
|
||||
<DT><A HREF="http://tiswww.case.edu/tichet/bash/POSIX">http://tiswww.case.edu/tichet/bash/POSIX</A> -- a description of posix mode<DD>
|
||||
<DT><I>sh</I>(1), <I>ksh</I>(1), <I>csh</I>(1)<DD>
|
||||
<DT><I>emacs</I>(1), <I>vi</I>(1)<DD>
|
||||
<DT><I>readline</I>(3)<DD>
|
||||
@@ -14928,28 +14931,28 @@ The <B>bash</B> executable
|
||||
<DD>
|
||||
The systemwide initialization file, executed for login shells
|
||||
<DT>
|
||||
<A HREF="file:~/.bash_profile"><I>~/.bash_profile</I></A>
|
||||
<I>ti/.bash_profile</I>
|
||||
|
||||
<DD>
|
||||
The personal initialization file, executed for login shells
|
||||
<DT>
|
||||
<A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>
|
||||
<I>ti/.bashrc</I>
|
||||
|
||||
<DD>
|
||||
The individual per-interactive-shell startup file
|
||||
<DT>
|
||||
<A HREF="file:~/.bash_logout"><I>~/.bash_logout</I></A>
|
||||
<I>ti/.bash_logout</I>
|
||||
|
||||
<DD>
|
||||
The individual login shell cleanup file, executed when a login shell exits
|
||||
<DT>
|
||||
<A HREF="file:~/.bash_history"><I>~/.bash_history</I></A>
|
||||
<I>ti/.bash_history</I>
|
||||
|
||||
<DD>
|
||||
The default value of <B>HISTFILE</B>, the file in which bash saves the
|
||||
command history
|
||||
<DT>
|
||||
<A HREF="file:~/.inputrc"><I>~/.inputrc</I></A>
|
||||
<I>ti/.inputrc</I>
|
||||
|
||||
<DD>
|
||||
Individual <I>readline</I> initialization file
|
||||
@@ -15064,7 +15067,7 @@ There may be only one active coprocess at a time.
|
||||
<HR>
|
||||
<TABLE WIDTH=100%>
|
||||
<TR>
|
||||
<TH ALIGN=LEFT width=33%>GNU Bash 5.3<TH ALIGN=CENTER width=33%>2023 July 19<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
<TH ALIGN=LEFT width=33%>GNU Bash 5.3<TH ALIGN=CENTER width=33%>2023 July 26<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
</TR>
|
||||
</TABLE>
|
||||
<HR>
|
||||
@@ -15170,7 +15173,7 @@ There may be only one active coprocess at a time.
|
||||
<DT><A HREF="#lbDI">BUGS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by man2html from /usr/local/src/bash/bash-20230719/doc/bash.1.<BR>
|
||||
Time: 23 July 2023 18:17:35 EDT
|
||||
This document was created by man2html from /usr/local/src/bash/bash-20230724/doc/bash.1.<BR>
|
||||
Time: 27 July 2023 13:45:03 EDT
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+115
-105
@@ -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.3, 19 July 2023).
|
||||
Bash shell (version 5.3, 26 July 2023).
|
||||
|
||||
This is Edition 5.3, last updated 19 July 2023, of 'The GNU Bash
|
||||
This is Edition 5.3, last updated 26 July 2023, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 5.3.
|
||||
|
||||
Copyright (C) 1988-2023 Free Software Foundation, Inc.
|
||||
@@ -26,10 +26,10 @@ Bash Features
|
||||
*************
|
||||
|
||||
This text is a brief description of the features that are present in the
|
||||
Bash shell (version 5.3, 19 July 2023). The Bash home page is
|
||||
Bash shell (version 5.3, 26 July 2023). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 5.3, last updated 19 July 2023, of 'The GNU Bash
|
||||
This is Edition 5.3, last updated 26 July 2023, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 5.3.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -1842,6 +1842,14 @@ omitted, the operator tests only for existence.
|
||||
$ v=123
|
||||
$ echo ${v-unset}
|
||||
123
|
||||
$ echo ${v:-unset-or-null}
|
||||
123
|
||||
$ unset v
|
||||
$ echo ${v-unset}
|
||||
unset
|
||||
$ v=
|
||||
$ echo ${v:-unset-or-null}
|
||||
unset-or-null
|
||||
|
||||
'${PARAMETER:=WORD}'
|
||||
If PARAMETER is unset or null, the expansion of WORD is assigned to
|
||||
@@ -4008,9 +4016,9 @@ standard.
|
||||
characters is enabled. The '-E' option disables the interpretation
|
||||
of these escape characters, even on systems where they are
|
||||
interpreted by default. The 'xpg_echo' shell option may be used to
|
||||
dynamically determine whether or not 'echo' expands these escape
|
||||
characters by default. 'echo' does not interpret '--' to mean the
|
||||
end of options.
|
||||
dynamically determine whether or not 'echo' interprets any options
|
||||
and expands these escape characters by default. 'echo' does not
|
||||
interpret '--' to mean the end of options.
|
||||
|
||||
'echo' interprets the following escape sequences:
|
||||
'\a'
|
||||
@@ -5189,7 +5197,9 @@ This builtin allows you to change additional shell optional behavior.
|
||||
|
||||
'xpg_echo'
|
||||
If set, the 'echo' builtin expands backslash-escape sequences
|
||||
by default.
|
||||
by default. If the 'posix' shell option (*note The Set
|
||||
Builtin::) is also enabled, 'echo' does not interpret any
|
||||
options.
|
||||
|
||||
|
||||
File: bash.info, Node: Special Builtins, Prev: Modifying Shell Behavior, Up: Shell Builtin Commands
|
||||
@@ -12860,103 +12870,103 @@ Node: Shell Expansions70406
|
||||
Node: Brace Expansion72491
|
||||
Node: Tilde Expansion75222
|
||||
Node: Shell Parameter Expansion77840
|
||||
Node: Command Substitution96239
|
||||
Node: Arithmetic Expansion99700
|
||||
Node: Process Substitution100665
|
||||
Node: Word Splitting101782
|
||||
Node: Filename Expansion103827
|
||||
Node: Pattern Matching106757
|
||||
Node: Quote Removal111756
|
||||
Node: Redirections112048
|
||||
Node: Executing Commands121738
|
||||
Node: Simple Command Expansion122405
|
||||
Node: Command Search and Execution124512
|
||||
Node: Command Execution Environment126896
|
||||
Node: Environment129928
|
||||
Node: Exit Status131588
|
||||
Node: Signals133369
|
||||
Node: Shell Scripts136815
|
||||
Node: Shell Builtin Commands139839
|
||||
Node: Bourne Shell Builtins141874
|
||||
Node: Bash Builtins165007
|
||||
Node: Modifying Shell Behavior197003
|
||||
Node: The Set Builtin197345
|
||||
Node: The Shopt Builtin208286
|
||||
Node: Special Builtins224290
|
||||
Node: Shell Variables225266
|
||||
Node: Bourne Shell Variables225700
|
||||
Node: Bash Variables227801
|
||||
Node: Bash Features262755
|
||||
Node: Invoking Bash263765
|
||||
Node: Bash Startup Files269775
|
||||
Node: Interactive Shells274903
|
||||
Node: What is an Interactive Shell?275311
|
||||
Node: Is this Shell Interactive?275957
|
||||
Node: Interactive Shell Behavior276769
|
||||
Node: Bash Conditional Expressions280395
|
||||
Node: Shell Arithmetic285034
|
||||
Node: Aliases287992
|
||||
Node: Arrays290883
|
||||
Node: The Directory Stack297443
|
||||
Node: Directory Stack Builtins298224
|
||||
Node: Controlling the Prompt302481
|
||||
Node: The Restricted Shell305443
|
||||
Node: Bash POSIX Mode308050
|
||||
Node: Shell Compatibility Mode324190
|
||||
Node: Job Control332431
|
||||
Node: Job Control Basics332888
|
||||
Node: Job Control Builtins337887
|
||||
Node: Job Control Variables343679
|
||||
Node: Command Line Editing344832
|
||||
Node: Introduction and Notation346500
|
||||
Node: Readline Interaction348120
|
||||
Node: Readline Bare Essentials349308
|
||||
Node: Readline Movement Commands351094
|
||||
Node: Readline Killing Commands352051
|
||||
Node: Readline Arguments353969
|
||||
Node: Searching355010
|
||||
Node: Readline Init File357193
|
||||
Node: Readline Init File Syntax358451
|
||||
Node: Conditional Init Constructs382473
|
||||
Node: Sample Init File386666
|
||||
Node: Bindable Readline Commands389787
|
||||
Node: Commands For Moving390988
|
||||
Node: Commands For History393036
|
||||
Node: Commands For Text398027
|
||||
Node: Commands For Killing402002
|
||||
Node: Numeric Arguments404703
|
||||
Node: Commands For Completion405839
|
||||
Node: Keyboard Macros410027
|
||||
Node: Miscellaneous Commands410712
|
||||
Node: Readline vi Mode416747
|
||||
Node: Programmable Completion417651
|
||||
Node: Programmable Completion Builtins425428
|
||||
Node: A Programmable Completion Example436545
|
||||
Node: Using History Interactively441790
|
||||
Node: Bash History Facilities442471
|
||||
Node: Bash History Builtins445473
|
||||
Node: History Interaction450494
|
||||
Node: Event Designators454111
|
||||
Node: Word Designators455462
|
||||
Node: Modifiers457219
|
||||
Node: Installing Bash459024
|
||||
Node: Basic Installation460158
|
||||
Node: Compilers and Options463877
|
||||
Node: Compiling For Multiple Architectures464615
|
||||
Node: Installation Names466304
|
||||
Node: Specifying the System Type468410
|
||||
Node: Sharing Defaults469124
|
||||
Node: Operation Controls469794
|
||||
Node: Optional Features470749
|
||||
Node: Reporting Bugs481965
|
||||
Node: Major Differences From The Bourne Shell483296
|
||||
Node: GNU Free Documentation License500142
|
||||
Node: Indexes525316
|
||||
Node: Builtin Index525767
|
||||
Node: Reserved Word Index532865
|
||||
Node: Variable Index535310
|
||||
Node: Function Index552441
|
||||
Node: Concept Index566159
|
||||
Node: Command Substitution96430
|
||||
Node: Arithmetic Expansion99891
|
||||
Node: Process Substitution100856
|
||||
Node: Word Splitting101973
|
||||
Node: Filename Expansion104018
|
||||
Node: Pattern Matching106948
|
||||
Node: Quote Removal111947
|
||||
Node: Redirections112239
|
||||
Node: Executing Commands121929
|
||||
Node: Simple Command Expansion122596
|
||||
Node: Command Search and Execution124703
|
||||
Node: Command Execution Environment127087
|
||||
Node: Environment130119
|
||||
Node: Exit Status131779
|
||||
Node: Signals133560
|
||||
Node: Shell Scripts137006
|
||||
Node: Shell Builtin Commands140030
|
||||
Node: Bourne Shell Builtins142065
|
||||
Node: Bash Builtins165198
|
||||
Node: Modifying Shell Behavior197221
|
||||
Node: The Set Builtin197563
|
||||
Node: The Shopt Builtin208504
|
||||
Node: Special Builtins224639
|
||||
Node: Shell Variables225615
|
||||
Node: Bourne Shell Variables226049
|
||||
Node: Bash Variables228150
|
||||
Node: Bash Features263104
|
||||
Node: Invoking Bash264114
|
||||
Node: Bash Startup Files270124
|
||||
Node: Interactive Shells275252
|
||||
Node: What is an Interactive Shell?275660
|
||||
Node: Is this Shell Interactive?276306
|
||||
Node: Interactive Shell Behavior277118
|
||||
Node: Bash Conditional Expressions280744
|
||||
Node: Shell Arithmetic285383
|
||||
Node: Aliases288341
|
||||
Node: Arrays291232
|
||||
Node: The Directory Stack297792
|
||||
Node: Directory Stack Builtins298573
|
||||
Node: Controlling the Prompt302830
|
||||
Node: The Restricted Shell305792
|
||||
Node: Bash POSIX Mode308399
|
||||
Node: Shell Compatibility Mode324539
|
||||
Node: Job Control332780
|
||||
Node: Job Control Basics333237
|
||||
Node: Job Control Builtins338236
|
||||
Node: Job Control Variables344028
|
||||
Node: Command Line Editing345181
|
||||
Node: Introduction and Notation346849
|
||||
Node: Readline Interaction348469
|
||||
Node: Readline Bare Essentials349657
|
||||
Node: Readline Movement Commands351443
|
||||
Node: Readline Killing Commands352400
|
||||
Node: Readline Arguments354318
|
||||
Node: Searching355359
|
||||
Node: Readline Init File357542
|
||||
Node: Readline Init File Syntax358800
|
||||
Node: Conditional Init Constructs382822
|
||||
Node: Sample Init File387015
|
||||
Node: Bindable Readline Commands390136
|
||||
Node: Commands For Moving391337
|
||||
Node: Commands For History393385
|
||||
Node: Commands For Text398376
|
||||
Node: Commands For Killing402351
|
||||
Node: Numeric Arguments405052
|
||||
Node: Commands For Completion406188
|
||||
Node: Keyboard Macros410376
|
||||
Node: Miscellaneous Commands411061
|
||||
Node: Readline vi Mode417096
|
||||
Node: Programmable Completion418000
|
||||
Node: Programmable Completion Builtins425777
|
||||
Node: A Programmable Completion Example436894
|
||||
Node: Using History Interactively442139
|
||||
Node: Bash History Facilities442820
|
||||
Node: Bash History Builtins445822
|
||||
Node: History Interaction450843
|
||||
Node: Event Designators454460
|
||||
Node: Word Designators455811
|
||||
Node: Modifiers457568
|
||||
Node: Installing Bash459373
|
||||
Node: Basic Installation460507
|
||||
Node: Compilers and Options464226
|
||||
Node: Compiling For Multiple Architectures464964
|
||||
Node: Installation Names466653
|
||||
Node: Specifying the System Type468759
|
||||
Node: Sharing Defaults469473
|
||||
Node: Operation Controls470143
|
||||
Node: Optional Features471098
|
||||
Node: Reporting Bugs482314
|
||||
Node: Major Differences From The Bourne Shell483645
|
||||
Node: GNU Free Documentation License500491
|
||||
Node: Indexes525665
|
||||
Node: Builtin Index526116
|
||||
Node: Reserved Word Index533214
|
||||
Node: Variable Index535659
|
||||
Node: Function Index552790
|
||||
Node: Concept Index566508
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
Binary file not shown.
+115
-105
@@ -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.3, 19 July 2023).
|
||||
Bash shell (version 5.3, 26 July 2023).
|
||||
|
||||
This is Edition 5.3, last updated 19 July 2023, of 'The GNU Bash
|
||||
This is Edition 5.3, last updated 26 July 2023, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 5.3.
|
||||
|
||||
Copyright (C) 1988-2023 Free Software Foundation, Inc.
|
||||
@@ -27,10 +27,10 @@ Bash Features
|
||||
*************
|
||||
|
||||
This text is a brief description of the features that are present in the
|
||||
Bash shell (version 5.3, 19 July 2023). The Bash home page is
|
||||
Bash shell (version 5.3, 26 July 2023). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 5.3, last updated 19 July 2023, of 'The GNU Bash
|
||||
This is Edition 5.3, last updated 26 July 2023, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 5.3.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -1843,6 +1843,14 @@ omitted, the operator tests only for existence.
|
||||
$ v=123
|
||||
$ echo ${v-unset}
|
||||
123
|
||||
$ echo ${v:-unset-or-null}
|
||||
123
|
||||
$ unset v
|
||||
$ echo ${v-unset}
|
||||
unset
|
||||
$ v=
|
||||
$ echo ${v:-unset-or-null}
|
||||
unset-or-null
|
||||
|
||||
'${PARAMETER:=WORD}'
|
||||
If PARAMETER is unset or null, the expansion of WORD is assigned to
|
||||
@@ -4009,9 +4017,9 @@ standard.
|
||||
characters is enabled. The '-E' option disables the interpretation
|
||||
of these escape characters, even on systems where they are
|
||||
interpreted by default. The 'xpg_echo' shell option may be used to
|
||||
dynamically determine whether or not 'echo' expands these escape
|
||||
characters by default. 'echo' does not interpret '--' to mean the
|
||||
end of options.
|
||||
dynamically determine whether or not 'echo' interprets any options
|
||||
and expands these escape characters by default. 'echo' does not
|
||||
interpret '--' to mean the end of options.
|
||||
|
||||
'echo' interprets the following escape sequences:
|
||||
'\a'
|
||||
@@ -5190,7 +5198,9 @@ This builtin allows you to change additional shell optional behavior.
|
||||
|
||||
'xpg_echo'
|
||||
If set, the 'echo' builtin expands backslash-escape sequences
|
||||
by default.
|
||||
by default. If the 'posix' shell option (*note The Set
|
||||
Builtin::) is also enabled, 'echo' does not interpret any
|
||||
options.
|
||||
|
||||
|
||||
File: bashref.info, Node: Special Builtins, Prev: Modifying Shell Behavior, Up: Shell Builtin Commands
|
||||
@@ -12861,103 +12871,103 @@ Node: Shell Expansions70502
|
||||
Node: Brace Expansion72590
|
||||
Node: Tilde Expansion75324
|
||||
Node: Shell Parameter Expansion77945
|
||||
Node: Command Substitution96347
|
||||
Node: Arithmetic Expansion99811
|
||||
Node: Process Substitution100779
|
||||
Node: Word Splitting101899
|
||||
Node: Filename Expansion103947
|
||||
Node: Pattern Matching106880
|
||||
Node: Quote Removal111882
|
||||
Node: Redirections112177
|
||||
Node: Executing Commands121870
|
||||
Node: Simple Command Expansion122540
|
||||
Node: Command Search and Execution124650
|
||||
Node: Command Execution Environment127037
|
||||
Node: Environment130072
|
||||
Node: Exit Status131735
|
||||
Node: Signals133519
|
||||
Node: Shell Scripts136968
|
||||
Node: Shell Builtin Commands139995
|
||||
Node: Bourne Shell Builtins142033
|
||||
Node: Bash Builtins165169
|
||||
Node: Modifying Shell Behavior197168
|
||||
Node: The Set Builtin197513
|
||||
Node: The Shopt Builtin208457
|
||||
Node: Special Builtins224464
|
||||
Node: Shell Variables225443
|
||||
Node: Bourne Shell Variables225880
|
||||
Node: Bash Variables227984
|
||||
Node: Bash Features262941
|
||||
Node: Invoking Bash263954
|
||||
Node: Bash Startup Files269967
|
||||
Node: Interactive Shells275098
|
||||
Node: What is an Interactive Shell?275509
|
||||
Node: Is this Shell Interactive?276158
|
||||
Node: Interactive Shell Behavior276973
|
||||
Node: Bash Conditional Expressions280602
|
||||
Node: Shell Arithmetic285244
|
||||
Node: Aliases288205
|
||||
Node: Arrays291099
|
||||
Node: The Directory Stack297662
|
||||
Node: Directory Stack Builtins298446
|
||||
Node: Controlling the Prompt302706
|
||||
Node: The Restricted Shell305671
|
||||
Node: Bash POSIX Mode308281
|
||||
Node: Shell Compatibility Mode324424
|
||||
Node: Job Control332668
|
||||
Node: Job Control Basics333128
|
||||
Node: Job Control Builtins338130
|
||||
Node: Job Control Variables343925
|
||||
Node: Command Line Editing345081
|
||||
Node: Introduction and Notation346752
|
||||
Node: Readline Interaction348375
|
||||
Node: Readline Bare Essentials349566
|
||||
Node: Readline Movement Commands351355
|
||||
Node: Readline Killing Commands352315
|
||||
Node: Readline Arguments354236
|
||||
Node: Searching355280
|
||||
Node: Readline Init File357466
|
||||
Node: Readline Init File Syntax358727
|
||||
Node: Conditional Init Constructs382752
|
||||
Node: Sample Init File386948
|
||||
Node: Bindable Readline Commands390072
|
||||
Node: Commands For Moving391276
|
||||
Node: Commands For History393327
|
||||
Node: Commands For Text398321
|
||||
Node: Commands For Killing402299
|
||||
Node: Numeric Arguments405003
|
||||
Node: Commands For Completion406142
|
||||
Node: Keyboard Macros410333
|
||||
Node: Miscellaneous Commands411021
|
||||
Node: Readline vi Mode417059
|
||||
Node: Programmable Completion417966
|
||||
Node: Programmable Completion Builtins425746
|
||||
Node: A Programmable Completion Example436866
|
||||
Node: Using History Interactively442114
|
||||
Node: Bash History Facilities442798
|
||||
Node: Bash History Builtins445803
|
||||
Node: History Interaction450827
|
||||
Node: Event Designators454447
|
||||
Node: Word Designators455801
|
||||
Node: Modifiers457561
|
||||
Node: Installing Bash459369
|
||||
Node: Basic Installation460506
|
||||
Node: Compilers and Options464228
|
||||
Node: Compiling For Multiple Architectures464969
|
||||
Node: Installation Names466661
|
||||
Node: Specifying the System Type468770
|
||||
Node: Sharing Defaults469487
|
||||
Node: Operation Controls470160
|
||||
Node: Optional Features471118
|
||||
Node: Reporting Bugs482337
|
||||
Node: Major Differences From The Bourne Shell483671
|
||||
Node: GNU Free Documentation License500520
|
||||
Node: Indexes525697
|
||||
Node: Builtin Index526151
|
||||
Node: Reserved Word Index533252
|
||||
Node: Variable Index535700
|
||||
Node: Function Index552834
|
||||
Node: Concept Index566555
|
||||
Node: Command Substitution96538
|
||||
Node: Arithmetic Expansion100002
|
||||
Node: Process Substitution100970
|
||||
Node: Word Splitting102090
|
||||
Node: Filename Expansion104138
|
||||
Node: Pattern Matching107071
|
||||
Node: Quote Removal112073
|
||||
Node: Redirections112368
|
||||
Node: Executing Commands122061
|
||||
Node: Simple Command Expansion122731
|
||||
Node: Command Search and Execution124841
|
||||
Node: Command Execution Environment127228
|
||||
Node: Environment130263
|
||||
Node: Exit Status131926
|
||||
Node: Signals133710
|
||||
Node: Shell Scripts137159
|
||||
Node: Shell Builtin Commands140186
|
||||
Node: Bourne Shell Builtins142224
|
||||
Node: Bash Builtins165360
|
||||
Node: Modifying Shell Behavior197386
|
||||
Node: The Set Builtin197731
|
||||
Node: The Shopt Builtin208675
|
||||
Node: Special Builtins224813
|
||||
Node: Shell Variables225792
|
||||
Node: Bourne Shell Variables226229
|
||||
Node: Bash Variables228333
|
||||
Node: Bash Features263290
|
||||
Node: Invoking Bash264303
|
||||
Node: Bash Startup Files270316
|
||||
Node: Interactive Shells275447
|
||||
Node: What is an Interactive Shell?275858
|
||||
Node: Is this Shell Interactive?276507
|
||||
Node: Interactive Shell Behavior277322
|
||||
Node: Bash Conditional Expressions280951
|
||||
Node: Shell Arithmetic285593
|
||||
Node: Aliases288554
|
||||
Node: Arrays291448
|
||||
Node: The Directory Stack298011
|
||||
Node: Directory Stack Builtins298795
|
||||
Node: Controlling the Prompt303055
|
||||
Node: The Restricted Shell306020
|
||||
Node: Bash POSIX Mode308630
|
||||
Node: Shell Compatibility Mode324773
|
||||
Node: Job Control333017
|
||||
Node: Job Control Basics333477
|
||||
Node: Job Control Builtins338479
|
||||
Node: Job Control Variables344274
|
||||
Node: Command Line Editing345430
|
||||
Node: Introduction and Notation347101
|
||||
Node: Readline Interaction348724
|
||||
Node: Readline Bare Essentials349915
|
||||
Node: Readline Movement Commands351704
|
||||
Node: Readline Killing Commands352664
|
||||
Node: Readline Arguments354585
|
||||
Node: Searching355629
|
||||
Node: Readline Init File357815
|
||||
Node: Readline Init File Syntax359076
|
||||
Node: Conditional Init Constructs383101
|
||||
Node: Sample Init File387297
|
||||
Node: Bindable Readline Commands390421
|
||||
Node: Commands For Moving391625
|
||||
Node: Commands For History393676
|
||||
Node: Commands For Text398670
|
||||
Node: Commands For Killing402648
|
||||
Node: Numeric Arguments405352
|
||||
Node: Commands For Completion406491
|
||||
Node: Keyboard Macros410682
|
||||
Node: Miscellaneous Commands411370
|
||||
Node: Readline vi Mode417408
|
||||
Node: Programmable Completion418315
|
||||
Node: Programmable Completion Builtins426095
|
||||
Node: A Programmable Completion Example437215
|
||||
Node: Using History Interactively442463
|
||||
Node: Bash History Facilities443147
|
||||
Node: Bash History Builtins446152
|
||||
Node: History Interaction451176
|
||||
Node: Event Designators454796
|
||||
Node: Word Designators456150
|
||||
Node: Modifiers457910
|
||||
Node: Installing Bash459718
|
||||
Node: Basic Installation460855
|
||||
Node: Compilers and Options464577
|
||||
Node: Compiling For Multiple Architectures465318
|
||||
Node: Installation Names467010
|
||||
Node: Specifying the System Type469119
|
||||
Node: Sharing Defaults469836
|
||||
Node: Operation Controls470509
|
||||
Node: Optional Features471467
|
||||
Node: Reporting Bugs482686
|
||||
Node: Major Differences From The Bourne Shell484020
|
||||
Node: GNU Free Documentation License500869
|
||||
Node: Indexes526046
|
||||
Node: Builtin Index526500
|
||||
Node: Reserved Word Index533601
|
||||
Node: Variable Index536049
|
||||
Node: Function Index553183
|
||||
Node: Concept Index566904
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
+21
-21
@@ -1,12 +1,12 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=pdfetex 2021.8.30) 23 JUL 2023 18:18
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=pdfetex 2021.8.30) 26 JUL 2023 11:16
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
file:line:error style messages enabled.
|
||||
%&-line parsing enabled.
|
||||
**\input /usr/local/src/bash/bash-20230719/doc/bashref.texi \input /usr/local/s
|
||||
rc/bash/bash-20230719/doc/bashref.texi
|
||||
(/usr/local/src/bash/bash-20230719/doc/bashref.texi
|
||||
(/usr/local/src/bash/bash-20230719/doc/texinfo.tex
|
||||
**\input /usr/local/src/bash/bash-20230724/doc/bashref.texi \input /usr/local/s
|
||||
rc/bash/bash-20230724/doc/bashref.texi
|
||||
(/usr/local/src/bash/bash-20230724/doc/bashref.texi
|
||||
(/usr/local/src/bash/bash-20230724/doc/texinfo.tex
|
||||
Loading texinfo [version 2015-11-22.14]:
|
||||
\outerhsize=\dimen16
|
||||
\outervsize=\dimen17
|
||||
@@ -162,15 +162,15 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
|
||||
texinfo.tex: doing @include of version.texi
|
||||
|
||||
|
||||
(/usr/local/src/bash/bash-20230719/doc/version.texi) [1{/opt/local/var/db/texmf
|
||||
(/usr/local/src/bash/bash-20230724/doc/version.texi) [1{/opt/local/var/db/texmf
|
||||
/fonts/map/pdftex/updmap/pdftex.map}] [2]
|
||||
(/usr/local/build/bash/bash-20230719/doc/bashref.toc [-1] [-2] [-3]) [-4]
|
||||
(/usr/local/build/bash/bash-20230719/doc/bashref.toc)
|
||||
(/usr/local/build/bash/bash-20230719/doc/bashref.toc) Chapter 1
|
||||
(/usr/local/build/bash/bash-20230724/doc/bashref.toc [-1] [-2] [-3]) [-4]
|
||||
(/usr/local/build/bash/bash-20230724/doc/bashref.toc)
|
||||
(/usr/local/build/bash/bash-20230724/doc/bashref.toc) Chapter 1
|
||||
\openout0 = `bashref.toc'.
|
||||
|
||||
|
||||
(/usr/local/build/bash/bash-20230719/doc/bashref.aux)
|
||||
(/usr/local/build/bash/bash-20230724/doc/bashref.aux)
|
||||
\openout1 = `bashref.aux'.
|
||||
|
||||
Chapter 2 [1] [2]
|
||||
@@ -230,7 +230,7 @@ Overfull \hbox (5.95723pt too wide) in paragraph at lines 724--725
|
||||
[49] [50] [51]
|
||||
[52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66]
|
||||
[67]
|
||||
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5377--5377
|
||||
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5386--5386
|
||||
[]@texttt set [-abefhkmnptuvxBCEHPT] [-o @textttsl option-name@texttt ] [--] [
|
||||
-] [@textttsl ar-gu-ment []@texttt ][]
|
||||
|
||||
@@ -243,7 +243,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5377--5377
|
||||
.etc.
|
||||
|
||||
|
||||
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5378--5378
|
||||
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5387--5387
|
||||
[]@texttt set [+abefhkmnptuvxBCEHPT] [+o @textttsl option-name@texttt ] [--] [
|
||||
-] [@textttsl ar-gu-ment []@texttt ][]
|
||||
|
||||
@@ -262,7 +262,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5378--5378
|
||||
[118] [119]
|
||||
texinfo.tex: doing @include of rluser.texi
|
||||
|
||||
(/usr/local/src/bash/bash-20230719/lib/readline/doc/rluser.texi
|
||||
(/usr/local/src/bash/bash-20230724/lib/readline/doc/rluser.texi
|
||||
Chapter 8 [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130]
|
||||
[131]
|
||||
Underfull \hbox (badness 7540) in paragraph at lines 878--884
|
||||
@@ -312,10 +312,10 @@ gnored[]
|
||||
texinfo.tex: doing @include of hsuser.texi
|
||||
|
||||
|
||||
(/usr/local/src/bash/bash-20230719/lib/readline/doc/hsuser.texi Chapter 9
|
||||
(/usr/local/src/bash/bash-20230724/lib/readline/doc/hsuser.texi Chapter 9
|
||||
[157] [158] [159] [160] [161] [162]) Chapter 10 [163] [164] [165] [166]
|
||||
[167]
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 9699--9708
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 9711--9720
|
||||
[]@textrm All of the fol-low-ing op-tions ex-cept for `@texttt alt-array-implem
|
||||
entation[]@textrm '[],
|
||||
|
||||
@@ -328,7 +328,7 @@ entation[]@textrm '[],
|
||||
.etc.
|
||||
|
||||
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 9699--9708
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 9711--9720
|
||||
@textrm `@texttt disabled-builtins[]@textrm '[], `@texttt direxpand-default[]@t
|
||||
extrm '[], `@texttt strict-posix-default[]@textrm '[], and
|
||||
|
||||
@@ -344,13 +344,13 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
|
||||
[177] [178] Appendix C [179]
|
||||
texinfo.tex: doing @include of fdl.texi
|
||||
|
||||
(/usr/local/src/bash/bash-20230719/doc/fdl.texi
|
||||
(/usr/local/src/bash/bash-20230724/doc/fdl.texi
|
||||
[180] [181] [182] [183] [184] [185] [186]) Appendix D [187] [188] [189]
|
||||
[190] [191] [192] [193] [194] [195] [196] )
|
||||
Here is how much of TeX's memory you used:
|
||||
4103 strings out of 497086
|
||||
47611 string characters out of 6206517
|
||||
142074 words of memory out of 5000000
|
||||
142120 words of memory out of 5000000
|
||||
4869 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
|
||||
@@ -372,10 +372,10 @@ 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 (202 pages, 810875 bytes).
|
||||
Output written on bashref.pdf (202 pages, 811039 bytes).
|
||||
PDF statistics:
|
||||
2812 PDF objects out of 2984 (max. 8388607)
|
||||
2563 compressed objects within 26 object streams
|
||||
2814 PDF objects out of 2984 (max. 8388607)
|
||||
2565 compressed objects within 26 object streams
|
||||
330 named destinations out of 1000 (max. 500000)
|
||||
1157 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
|
||||
|
||||
Binary file not shown.
+6
-2
@@ -4772,8 +4772,9 @@ backslash-escaped characters is enabled.
|
||||
The @option{-E} option disables the interpretation of these escape characters,
|
||||
even on systems where they are interpreted by default.
|
||||
The @code{xpg_echo} shell option may be used to
|
||||
dynamically determine whether or not @code{echo} expands these
|
||||
escape characters by default.
|
||||
dynamically determine whether or not @code{echo}
|
||||
interprets any options and
|
||||
expands these escape characters by default.
|
||||
@code{echo} does not interpret @option{--} to mean the end of options.
|
||||
|
||||
@code{echo} interprets the following escape sequences:
|
||||
@@ -6074,6 +6075,9 @@ leaving them open when the command completes.
|
||||
@item xpg_echo
|
||||
If set, the @code{echo} builtin expands backslash-escape sequences
|
||||
by default.
|
||||
If the @code{posix} shell option (@pxref{The Set Builtin}) is also enabled,
|
||||
@code{echo} does not
|
||||
interpret any options.
|
||||
|
||||
@end table
|
||||
@end table
|
||||
|
||||
+217
-216
@@ -521,10 +521,10 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
characters is enabled. The --EE option disables the interpreta-
|
||||
tion of these escape characters, even on systems where they are
|
||||
interpreted by default. The xxppgg__eecchhoo shell option may be used
|
||||
to dynamically determine whether or not eecchhoo expands these es-
|
||||
cape characters by default. eecchhoo does not interpret ---- to mean
|
||||
the end of options. eecchhoo interprets the following escape se-
|
||||
quences:
|
||||
to dynamically determine whether or not eecchhoo interprets any op-
|
||||
tions and expands these escape characters by default. eecchhoo does
|
||||
not interpret ---- to mean the end of options. eecchhoo interprets
|
||||
the following escape sequences:
|
||||
\\aa alert (bell)
|
||||
\\bb backspace
|
||||
\\cc suppress further output
|
||||
@@ -1705,32 +1705,33 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
|
||||
xxppgg__eecchhoo
|
||||
If set, the eecchhoo builtin expands backslash-escape se-
|
||||
quences by default.
|
||||
quences by default. If the ppoossiixx shell option is also
|
||||
enabled, eecchhoo does not interpret any options.
|
||||
|
||||
ssuussppeenndd [--ff]
|
||||
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
|
||||
signal. A login shell, or a shell without job control enabled,
|
||||
cannot be suspended; the --ff 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 --ff is
|
||||
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
|
||||
signal. A login shell, or a shell without job control enabled,
|
||||
cannot be suspended; the --ff 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 --ff is
|
||||
not supplied.
|
||||
|
||||
tteesstt _e_x_p_r
|
||||
[[ _e_x_p_r ]]
|
||||
Return a status of 0 (true) or 1 (false) depending on the evalu-
|
||||
ation of the conditional expression _e_x_p_r. Each operator and op-
|
||||
erand must be a separate argument. Expressions are composed of
|
||||
the primaries described in _b_a_s_h_(_1_) under CCOONNDDIITTIIOONNAALL EEXXPPRREESS--
|
||||
erand must be a separate argument. Expressions are composed of
|
||||
the primaries described in _b_a_s_h_(_1_) under CCOONNDDIITTIIOONNAALL EEXXPPRREESS--
|
||||
SSIIOONNSS. tteesstt does not accept any options, nor does it accept and
|
||||
ignore an argument of ---- as signifying the end of options.
|
||||
|
||||
Expressions may be combined using the following operators,
|
||||
listed in decreasing order of precedence. The evaluation de-
|
||||
pends on the number of arguments; see below. Operator prece-
|
||||
Expressions may be combined using the following operators,
|
||||
listed in decreasing order of precedence. The evaluation de-
|
||||
pends on the number of arguments; see below. Operator prece-
|
||||
dence is used when there are five or more arguments.
|
||||
!! _e_x_p_r True if _e_x_p_r is false.
|
||||
(( _e_x_p_r ))
|
||||
Returns the value of _e_x_p_r. This may be used to override
|
||||
Returns the value of _e_x_p_r. This may be used to override
|
||||
the normal precedence of operators.
|
||||
_e_x_p_r_1 -aa _e_x_p_r_2
|
||||
True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
|
||||
@@ -1747,161 +1748,161 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
null.
|
||||
2 arguments
|
||||
If the first argument is !!, the expression is true if and
|
||||
only if the second argument is null. If the first argu-
|
||||
ment is one of the unary conditional operators listed in
|
||||
_b_a_s_h_(_1_) under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
|
||||
only if the second argument is null. If the first argu-
|
||||
ment is one of the unary conditional operators listed in
|
||||
_b_a_s_h_(_1_) under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
|
||||
true if the unary test is true. If the first argument is
|
||||
not a valid unary conditional operator, the expression is
|
||||
false.
|
||||
3 arguments
|
||||
The following conditions are applied in the order listed.
|
||||
If the second argument is one of the binary conditional
|
||||
operators listed in _b_a_s_h_(_1_) under CCOONNDDIITTIIOONNAALL EEXXPPRREESS--
|
||||
SSIIOONNSS, the result of the expression is the result of the
|
||||
binary test using the first and third arguments as oper-
|
||||
ands. The --aa and --oo operators are considered binary op-
|
||||
If the second argument is one of the binary conditional
|
||||
operators listed in _b_a_s_h_(_1_) under CCOONNDDIITTIIOONNAALL EEXXPPRREESS--
|
||||
SSIIOONNSS, the result of the expression is the result of the
|
||||
binary test using the first and third arguments as oper-
|
||||
ands. The --aa and --oo operators are considered binary op-
|
||||
erators when there are three arguments. If the first ar-
|
||||
gument is !!, the value is the negation of the two-argu-
|
||||
ment test using the second and third arguments. If the
|
||||
gument is !!, the value is the negation of the two-argu-
|
||||
ment test using the second and third arguments. If the
|
||||
first argument is exactly (( and the third argument is ex-
|
||||
actly )), the result is the one-argument test of the sec-
|
||||
actly )), the result is the one-argument test of the sec-
|
||||
ond argument. Otherwise, the expression is false.
|
||||
4 arguments
|
||||
The following conditions are applied in the order listed.
|
||||
If the first argument is !!, the result is the negation of
|
||||
the three-argument expression composed of the remaining
|
||||
arguments. the two-argument test using the second and
|
||||
third arguments. If the first argument is exactly (( and
|
||||
the fourth argument is exactly )), the result is the two-
|
||||
argument test of the second and third arguments. Other-
|
||||
the three-argument expression composed of the remaining
|
||||
arguments. the two-argument test using the second and
|
||||
third arguments. If the first argument is exactly (( and
|
||||
the fourth argument is exactly )), the result is the two-
|
||||
argument test of the second and third arguments. Other-
|
||||
wise, the expression is parsed and evaluated according to
|
||||
precedence using the rules listed above.
|
||||
5 or more arguments
|
||||
The expression is parsed and evaluated according to
|
||||
The expression is parsed and evaluated according to
|
||||
precedence using the rules listed above.
|
||||
|
||||
If the shell is not in _p_o_s_i_x _m_o_d_e, when used with tteesstt or [[, the
|
||||
<< and >> operators sort lexicographically using ASCII ordering.
|
||||
When the shell is in _p_o_s_i_x _m_o_d_e, these operators sort using the
|
||||
<< and >> operators sort lexicographically using ASCII ordering.
|
||||
When the shell is in _p_o_s_i_x _m_o_d_e, these operators sort using the
|
||||
current locale.
|
||||
|
||||
ttiimmeess Print the accumulated user and system times for the shell and
|
||||
ttiimmeess Print the accumulated user and system times for the shell and
|
||||
for processes run from the shell. The return status is 0.
|
||||
|
||||
ttrraapp [--llpp] [[_a_c_t_i_o_n] _s_i_g_s_p_e_c ...]
|
||||
The _a_c_t_i_o_n is a command that is read and executed when the shell
|
||||
receives signal(s) _s_i_g_s_p_e_c. If _a_c_t_i_o_n is absent (and there is a
|
||||
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
|
||||
original disposition (the value it had upon entrance to the
|
||||
shell). If _a_c_t_i_o_n is the null string the signal specified by
|
||||
each _s_i_g_s_p_e_c is ignored by the shell and by the commands it in-
|
||||
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
|
||||
original disposition (the value it had upon entrance to the
|
||||
shell). If _a_c_t_i_o_n is the null string the signal specified by
|
||||
each _s_i_g_s_p_e_c is ignored by the shell and by the commands it in-
|
||||
vokes.
|
||||
|
||||
If no arguments are supplied, ttrraapp displays the actions associ-
|
||||
If no arguments are supplied, ttrraapp displays the actions associ-
|
||||
ated with each trapped signal as a set of ttrraapp commands that can
|
||||
be reused as shell input to restore the current signal disposi-
|
||||
tions. If --pp is given, and _a_c_t_i_o_n is not present, then ttrraapp
|
||||
displays the actions associated with each _s_i_g_s_p_e_c or, if none
|
||||
be reused as shell input to restore the current signal disposi-
|
||||
tions. If --pp is given, and _a_c_t_i_o_n is not present, then ttrraapp
|
||||
displays the actions associated with each _s_i_g_s_p_e_c or, if none
|
||||
are supplied, for all trapped signals, as a set of ttrraapp commands
|
||||
that can be reused as shell input to restore the current signal
|
||||
dispositions. The --PP option behaves similarly, but displays
|
||||
only the actions associated with each _s_i_g_s_p_e_c argument. --PP re-
|
||||
quires at least one _s_i_g_s_p_e_c argument. The --PP or --pp options to
|
||||
ttrraapp may be used in a subshell environment (e.g., command sub-
|
||||
stitution) and, as long as they are used before ttrraapp is used to
|
||||
change a signal's handling, will display the state of its par-
|
||||
that can be reused as shell input to restore the current signal
|
||||
dispositions. The --PP option behaves similarly, but displays
|
||||
only the actions associated with each _s_i_g_s_p_e_c argument. --PP re-
|
||||
quires at least one _s_i_g_s_p_e_c argument. The --PP or --pp options to
|
||||
ttrraapp may be used in a subshell environment (e.g., command sub-
|
||||
stitution) and, as long as they are used before ttrraapp is used to
|
||||
change a signal's handling, will display the state of its par-
|
||||
ent's traps.
|
||||
|
||||
The --ll option causes ttrraapp to print a list of signal names and
|
||||
their corresponding numbers. Each _s_i_g_s_p_e_c is either a signal
|
||||
name defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names
|
||||
The --ll option causes ttrraapp to print a list of signal names and
|
||||
their corresponding numbers. Each _s_i_g_s_p_e_c is either a signal
|
||||
name defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names
|
||||
are case insensitive and the SSIIGG prefix is optional.
|
||||
|
||||
If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_c_t_i_o_n is executed on exit
|
||||
from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_c_t_i_o_n is
|
||||
If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_c_t_i_o_n is executed on exit
|
||||
from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_c_t_i_o_n is
|
||||
executed before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
|
||||
_s_e_l_e_c_t command, (( arithmetic command, [[ conditional command,
|
||||
_s_e_l_e_c_t command, (( arithmetic command, [[ conditional command,
|
||||
arithmetic _f_o_r command, and before the first command executes in
|
||||
a shell function (see SSHHEELLLL GGRRAAMMMMAARR in _b_a_s_h_(_1_)). Refer to the
|
||||
description of the eexxttddeebbuugg option to the sshhoopptt builtin for de-
|
||||
tails of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is RREETTUURRNN,
|
||||
the command _a_c_t_i_o_n is executed each time a shell function or a
|
||||
script executed with the .. or ssoouurrccee builtins finishes execut-
|
||||
a shell function (see SSHHEELLLL GGRRAAMMMMAARR in _b_a_s_h_(_1_)). Refer to the
|
||||
description of the eexxttddeebbuugg option to the sshhoopptt builtin for de-
|
||||
tails of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is RREETTUURRNN,
|
||||
the command _a_c_t_i_o_n is executed each time a shell function or a
|
||||
script executed with the .. or ssoouurrccee builtins finishes execut-
|
||||
ing.
|
||||
|
||||
If a _s_i_g_s_p_e_c is EERRRR, the command _a_c_t_i_o_n is executed whenever a
|
||||
If a _s_i_g_s_p_e_c is EERRRR, the command _a_c_t_i_o_n is executed whenever a
|
||||
pipeline (which may consist of a single simple command), a list,
|
||||
or a compound command returns a non-zero exit status, subject to
|
||||
the following conditions. The EERRRR trap is not executed if the
|
||||
the following conditions. The EERRRR trap is not executed if the
|
||||
failed command is part of the command list immediately following
|
||||
a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
|
||||
a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
|
||||
part of a command executed in a &&&& or |||| list except the command
|
||||
following the final &&&& or ||||, any command in a pipeline but the
|
||||
last, or if the command's return value is being inverted using
|
||||
following the final &&&& or ||||, any command in a pipeline but the
|
||||
last, or if the command's return value is being inverted using
|
||||
!!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) op-
|
||||
tion.
|
||||
|
||||
When the shell is not interactive, signals ignored upon entry to
|
||||
the shell cannot be trapped or reset. Interactive shells permit
|
||||
trapping signals ignored on entry. Trapped signals that are not
|
||||
being ignored are reset to their original values in a subshell
|
||||
or subshell environment when one is created. The return status
|
||||
being ignored are reset to their original values in a subshell
|
||||
or subshell environment when one is created. The return status
|
||||
is false if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true.
|
||||
|
||||
ttrruuee Does nothing, returns a 0 status.
|
||||
|
||||
ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...]
|
||||
With no options, indicate how each _n_a_m_e would be interpreted if
|
||||
With no options, indicate how each _n_a_m_e would be interpreted if
|
||||
used as a command name. If the --tt option is used, ttyyppee prints a
|
||||
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
|
||||
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
|
||||
builtin, or executable disk file, respectively. If the _n_a_m_e is
|
||||
not found, then nothing is printed, and ttyyppee returns a non-zero
|
||||
exit status. If the --pp option is used, ttyyppee either returns the
|
||||
name of the executable file that would be found by searching
|
||||
$$PPAATTHH if _n_a_m_e were specified as a command name, or nothing if
|
||||
``type -t name'' would not return _f_i_l_e. The --PP option forces a
|
||||
PPAATTHH search for each _n_a_m_e, even if ``type -t name'' would not
|
||||
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
|
||||
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
|
||||
builtin, or executable disk file, respectively. If the _n_a_m_e is
|
||||
not found, then nothing is printed, and ttyyppee returns a non-zero
|
||||
exit status. If the --pp option is used, ttyyppee either returns the
|
||||
name of the executable file that would be found by searching
|
||||
$$PPAATTHH if _n_a_m_e were specified as a command name, or nothing if
|
||||
``type -t name'' would not return _f_i_l_e. The --PP option forces a
|
||||
PPAATTHH search for each _n_a_m_e, even if ``type -t name'' would not
|
||||
return _f_i_l_e. If a command is hashed, --pp and --PP print the hashed
|
||||
value, which is not necessarily the file that appears first in
|
||||
PPAATTHH. If the --aa option is used, ttyyppee prints all of the places
|
||||
that contain a command named _n_a_m_e. This includes aliases, re-
|
||||
served words, functions, and builtins, but the path search op-
|
||||
value, which is not necessarily the file that appears first in
|
||||
PPAATTHH. If the --aa option is used, ttyyppee prints all of the places
|
||||
that contain a command named _n_a_m_e. This includes aliases, re-
|
||||
served words, functions, and builtins, but the path search op-
|
||||
tions (--pp and --PP) can be supplied to restrict the output to exe-
|
||||
cutable files. ttyyppee does not consult the table of hashed com-
|
||||
cutable files. ttyyppee does not consult the table of hashed com-
|
||||
mands when using --aa with --pp, and only performs a PPAATTHH search for
|
||||
_n_a_m_e. The --ff option suppresses shell function lookup, as with
|
||||
the ccoommmmaanndd builtin. ttyyppee returns true if all of the arguments
|
||||
_n_a_m_e. The --ff option suppresses shell function lookup, as with
|
||||
the ccoommmmaanndd builtin. ttyyppee returns true if all of the arguments
|
||||
are found, false if any are not found.
|
||||
|
||||
uulliimmiitt [--HHSS] --aa
|
||||
uulliimmiitt [--HHSS] [--bbccddeeffiikkllmmnnppqqrrssttuuvvxxPPRRTT [_l_i_m_i_t]]
|
||||
Provides control over the resources available to the shell and
|
||||
to processes started by it, on systems that allow such control.
|
||||
Provides control over the resources available to the shell and
|
||||
to processes started by it, on systems that allow such control.
|
||||
The --HH and --SS options specify that the hard or soft limit is set
|
||||
for the given resource. A hard limit cannot be increased by a
|
||||
non-root user once it is set; a soft limit may be increased up
|
||||
to the value of the hard limit. If neither --HH nor --SS is speci-
|
||||
for the given resource. A hard limit cannot be increased by a
|
||||
non-root user once it is set; a soft limit may be increased up
|
||||
to the value of the hard limit. If neither --HH nor --SS is speci-
|
||||
fied, both the soft and hard limits are set. The value of _l_i_m_i_t
|
||||
can be a number in the unit specified for the resource or one of
|
||||
the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the
|
||||
current hard limit, the current soft limit, and no limit, re-
|
||||
spectively. If _l_i_m_i_t is omitted, the current value of the soft
|
||||
current hard limit, the current soft limit, and no limit, re-
|
||||
spectively. If _l_i_m_i_t is omitted, the current value of the soft
|
||||
limit of the resource is printed, unless the --HH option is given.
|
||||
When more than one resource is specified, the limit name and
|
||||
unit, if appropriate, are printed before the value. Other op-
|
||||
When more than one resource is specified, the limit name and
|
||||
unit, if appropriate, are printed before the value. Other op-
|
||||
tions are interpreted as follows:
|
||||
--aa All current limits are reported; no limits are set
|
||||
--bb The maximum socket buffer size
|
||||
--cc The maximum size of core files created
|
||||
--dd The maximum size of a process's data segment
|
||||
--ee The maximum scheduling priority ("nice")
|
||||
--ff The maximum size of files written by the shell and its
|
||||
--ff The maximum size of files written by the shell and its
|
||||
children
|
||||
--ii The maximum number of pending signals
|
||||
--kk The maximum number of kqueues that may be allocated
|
||||
--ll The maximum size that may be locked into memory
|
||||
--mm The maximum resident set size (many systems do not honor
|
||||
--mm The maximum resident set size (many systems do not honor
|
||||
this limit)
|
||||
--nn The maximum number of open file descriptors (most systems
|
||||
do not allow this value to be set)
|
||||
@@ -1910,134 +1911,134 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
|
||||
--rr The maximum real-time scheduling priority
|
||||
--ss The maximum stack size
|
||||
--tt The maximum amount of cpu time in seconds
|
||||
--uu The maximum number of processes available to a single
|
||||
--uu The maximum number of processes available to a single
|
||||
user
|
||||
--vv The maximum amount of virtual memory available to the
|
||||
--vv The maximum amount of virtual memory available to the
|
||||
shell and, on some systems, to its children
|
||||
--xx The maximum number of file locks
|
||||
--PP The maximum number of pseudoterminals
|
||||
--RR The maximum time a real-time process can run before
|
||||
--RR The maximum time a real-time process can run before
|
||||
blocking, in microseconds
|
||||
--TT The maximum number of threads
|
||||
|
||||
If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the
|
||||
new value of the specified resource. If no option is given,
|
||||
then --ff is assumed. Values are in 1024-byte increments, except
|
||||
for --tt, which is in seconds; --RR, which is in microseconds; --pp,
|
||||
which is in units of 512-byte blocks; --PP, --TT, --bb, --kk, --nn, and
|
||||
--uu, which are unscaled values; and, when in posix mode, --cc and
|
||||
--ff, which are in 512-byte increments. The return status is 0
|
||||
unless an invalid option or argument is supplied, or an error
|
||||
If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the
|
||||
new value of the specified resource. If no option is given,
|
||||
then --ff is assumed. Values are in 1024-byte increments, except
|
||||
for --tt, which is in seconds; --RR, which is in microseconds; --pp,
|
||||
which is in units of 512-byte blocks; --PP, --TT, --bb, --kk, --nn, and
|
||||
--uu, which are unscaled values; and, when in posix mode, --cc and
|
||||
--ff, which are in 512-byte increments. The return status is 0
|
||||
unless an invalid option or argument is supplied, or an error
|
||||
occurs while setting a new limit.
|
||||
|
||||
uummaasskk [--pp] [--SS] [_m_o_d_e]
|
||||
The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with
|
||||
a digit, it is interpreted as an octal number; otherwise it is
|
||||
interpreted as a symbolic mode mask similar to that accepted by
|
||||
_c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
|
||||
printed. The --SS option causes the mask to be printed in sym-
|
||||
bolic form; the default output is an octal number. If the --pp
|
||||
a digit, it is interpreted as an octal number; otherwise it is
|
||||
interpreted as a symbolic mode mask similar to that accepted by
|
||||
_c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
|
||||
printed. The --SS option causes the mask to be printed in sym-
|
||||
bolic form; the default output is an octal number. If the --pp
|
||||
option is supplied, and _m_o_d_e is omitted, the output is in a form
|
||||
that may be reused as input. The return status is 0 if the mode
|
||||
was successfully changed or if no _m_o_d_e argument was supplied,
|
||||
was successfully changed or if no _m_o_d_e argument was supplied,
|
||||
and false otherwise.
|
||||
|
||||
uunnaalliiaass [-aa] [_n_a_m_e ...]
|
||||
Remove each _n_a_m_e from the list of defined aliases. If --aa is
|
||||
supplied, all alias definitions are removed. The return value
|
||||
Remove each _n_a_m_e from the list of defined aliases. If --aa is
|
||||
supplied, all alias definitions are removed. The return value
|
||||
is true unless a supplied _n_a_m_e is not a defined alias.
|
||||
|
||||
uunnsseett [-ffvv] [-nn] [_n_a_m_e ...]
|
||||
For each _n_a_m_e, remove the corresponding variable or function.
|
||||
For each _n_a_m_e, remove the corresponding variable or function.
|
||||
If the --vv option is given, each _n_a_m_e refers to a shell variable,
|
||||
and that variable is removed. Read-only variables may not be
|
||||
unset. If --ff is specified, each _n_a_m_e refers to a shell func-
|
||||
tion, and the function definition is removed. If the --nn option
|
||||
is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute,
|
||||
_n_a_m_e will be unset rather than the variable it references. --nn
|
||||
has no effect if the --ff option is supplied. If no options are
|
||||
supplied, each _n_a_m_e refers to a variable; if there is no vari-
|
||||
able by that name, a function with that name, if any, is unset.
|
||||
Each unset variable or function is removed from the environment
|
||||
passed to subsequent commands. If any of BBAASSHH__AALLIIAASSEESS,
|
||||
and that variable is removed. Read-only variables may not be
|
||||
unset. If --ff is specified, each _n_a_m_e refers to a shell func-
|
||||
tion, and the function definition is removed. If the --nn option
|
||||
is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute,
|
||||
_n_a_m_e will be unset rather than the variable it references. --nn
|
||||
has no effect if the --ff option is supplied. If no options are
|
||||
supplied, each _n_a_m_e refers to a variable; if there is no vari-
|
||||
able by that name, a function with that name, if any, is unset.
|
||||
Each unset variable or function is removed from the environment
|
||||
passed to subsequent commands. If any of BBAASSHH__AALLIIAASSEESS,
|
||||
BBAASSHH__AARRGGVV00, BBAASSHH__CCMMDDSS, BBAASSHH__CCOOMMMMAANNDD, BBAASSHH__SSUUBBSSHHEELLLL, BBAASSHHPPIIDD,
|
||||
CCOOMMPP__WWOORRDDBBRREEAAKKSS, DDIIRRSSTTAACCKK, EEPPOOCCHHRREEAALLTTIIMMEE, EEPPOOCCHHSSEECCOONNDDSS, FFUUNNCC--
|
||||
NNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECCOONNDDSS, or SSRRAANNDDOOMM are
|
||||
CCOOMMPP__WWOORRDDBBRREEAAKKSS, DDIIRRSSTTAACCKK, EEPPOOCCHHRREEAALLTTIIMMEE, EEPPOOCCHHSSEECCOONNDDSS, FFUUNNCC--
|
||||
NNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECCOONNDDSS, or SSRRAANNDDOOMM are
|
||||
unset, they lose their special properties, even if they are sub-
|
||||
sequently reset. The exit status is true unless a _n_a_m_e is read-
|
||||
only or may not be unset.
|
||||
|
||||
wwaaiitt [--ffnn] [--pp _v_a_r_n_a_m_e] [_i_d _._._.]
|
||||
Wait for each specified child process and return its termination
|
||||
status. Each _i_d may be a process ID or a job specification; if
|
||||
a job spec is given, all processes in that job's pipeline are
|
||||
waited for. If _i_d is not given, wwaaiitt waits for all running
|
||||
background jobs and the last-executed process substitution, if
|
||||
status. Each _i_d may be a process ID or a job specification; if
|
||||
a job spec is given, all processes in that job's pipeline are
|
||||
waited for. If _i_d is not given, wwaaiitt waits for all running
|
||||
background jobs and the last-executed process substitution, if
|
||||
its process id is the same as $$!!, and the return status is zero.
|
||||
If the --nn option is supplied, wwaaiitt waits for a single job from
|
||||
If the --nn option is supplied, wwaaiitt waits for a single job from
|
||||
the list of _i_ds or, if no _i_ds are supplied, any job, to complete
|
||||
and returns its exit status. If none of the supplied arguments
|
||||
and returns its exit status. If none of the supplied arguments
|
||||
is a child of the shell, or if no arguments are supplied and the
|
||||
shell has no unwaited-for children, the exit status is 127. If
|
||||
the --pp option is supplied, the process or job identifier of the
|
||||
job for which the exit status is returned is assigned to the
|
||||
variable _v_a_r_n_a_m_e named by the option argument. The variable
|
||||
will be unset initially, before any assignment. This is useful
|
||||
only when the --nn option is supplied. Supplying the --ff option,
|
||||
when job control is enabled, forces wwaaiitt to wait for _i_d to ter-
|
||||
shell has no unwaited-for children, the exit status is 127. If
|
||||
the --pp option is supplied, the process or job identifier of the
|
||||
job for which the exit status is returned is assigned to the
|
||||
variable _v_a_r_n_a_m_e named by the option argument. The variable
|
||||
will be unset initially, before any assignment. This is useful
|
||||
only when the --nn option is supplied. Supplying the --ff option,
|
||||
when job control is enabled, forces wwaaiitt to wait for _i_d to ter-
|
||||
minate before returning its status, instead of returning when it
|
||||
changes status. If _i_d specifies a non-existent process or job,
|
||||
the return status is 127. If wwaaiitt is interrupted by a signal,
|
||||
the return status will be greater than 128, as described under
|
||||
SSIIGGNNAALLSS in _b_a_s_h_(_1_). Otherwise, the return status is the exit
|
||||
changes status. If _i_d specifies a non-existent process or job,
|
||||
the return status is 127. If wwaaiitt is interrupted by a signal,
|
||||
the return status will be greater than 128, as described under
|
||||
SSIIGGNNAALLSS in _b_a_s_h_(_1_). Otherwise, the return status is the exit
|
||||
status of the last process or job waited for.
|
||||
|
||||
SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
|
||||
Bash-4.0 introduced the concept of a _s_h_e_l_l _c_o_m_p_a_t_i_b_i_l_i_t_y _l_e_v_e_l, speci-
|
||||
fied as a set of options to the shopt builtin ( ccoommppaatt3311, ccoommppaatt3322,
|
||||
ccoommppaatt4400, ccoommppaatt4411, and so on). There is only one current compatibil-
|
||||
ity level -- each option is mutually exclusive. The compatibility
|
||||
level is intended to allow users to select behavior from previous ver-
|
||||
sions that is incompatible with newer versions while they migrate
|
||||
scripts to use current features and behavior. It's intended to be a
|
||||
Bash-4.0 introduced the concept of a _s_h_e_l_l _c_o_m_p_a_t_i_b_i_l_i_t_y _l_e_v_e_l, speci-
|
||||
fied as a set of options to the shopt builtin ( ccoommppaatt3311, ccoommppaatt3322,
|
||||
ccoommppaatt4400, ccoommppaatt4411, and so on). There is only one current compatibil-
|
||||
ity level -- each option is mutually exclusive. The compatibility
|
||||
level is intended to allow users to select behavior from previous ver-
|
||||
sions that is incompatible with newer versions while they migrate
|
||||
scripts to use current features and behavior. It's intended to be a
|
||||
temporary solution.
|
||||
|
||||
This section does not mention behavior that is standard for a particu-
|
||||
lar version (e.g., setting ccoommppaatt3322 means that quoting the rhs of the
|
||||
regexp matching operator quotes special regexp characters in the word,
|
||||
This section does not mention behavior that is standard for a particu-
|
||||
lar version (e.g., setting ccoommppaatt3322 means that quoting the rhs of the
|
||||
regexp matching operator quotes special regexp characters in the word,
|
||||
which is default behavior in bash-3.2 and subsequent versions).
|
||||
|
||||
If a user enables, say, ccoommppaatt3322, it may affect the behavior of other
|
||||
compatibility levels up to and including the current compatibility
|
||||
level. The idea is that each compatibility level controls behavior
|
||||
that changed in that version of bbaasshh, but that behavior may have been
|
||||
present in earlier versions. For instance, the change to use locale-
|
||||
based comparisons with the [[[[ command came in bash-4.1, and earlier
|
||||
If a user enables, say, ccoommppaatt3322, it may affect the behavior of other
|
||||
compatibility levels up to and including the current compatibility
|
||||
level. The idea is that each compatibility level controls behavior
|
||||
that changed in that version of bbaasshh, but that behavior may have been
|
||||
present in earlier versions. For instance, the change to use locale-
|
||||
based comparisons with the [[[[ command came in bash-4.1, and earlier
|
||||
versions used ASCII-based comparisons, so enabling ccoommppaatt3322 will enable
|
||||
ASCII-based comparisons as well. That granularity may not be suffi-
|
||||
cient for all uses, and as a result users should employ compatibility
|
||||
levels carefully. Read the documentation for a particular feature to
|
||||
ASCII-based comparisons as well. That granularity may not be suffi-
|
||||
cient for all uses, and as a result users should employ compatibility
|
||||
levels carefully. Read the documentation for a particular feature to
|
||||
find out the current behavior.
|
||||
|
||||
Bash-4.3 introduced a new shell variable: BBAASSHH__CCOOMMPPAATT. The value as-
|
||||
Bash-4.3 introduced a new shell variable: BBAASSHH__CCOOMMPPAATT. The value as-
|
||||
signed to this variable (a decimal version number like 4.2, or an inte-
|
||||
ger corresponding to the ccoommppaatt_N_N option, like 42) determines the com-
|
||||
ger corresponding to the ccoommppaatt_N_N option, like 42) determines the com-
|
||||
patibility level.
|
||||
|
||||
Starting with bash-4.4, Bash has begun deprecating older compatibility
|
||||
levels. Eventually, the options will be removed in favor of BBAASSHH__CCOOMM--
|
||||
Starting with bash-4.4, Bash has begun deprecating older compatibility
|
||||
levels. Eventually, the options will be removed in favor of BBAASSHH__CCOOMM--
|
||||
PPAATT.
|
||||
|
||||
Bash-5.0 is the final version for which there will be an individual
|
||||
shopt option for the previous version. Users should use BBAASSHH__CCOOMMPPAATT on
|
||||
Bash-5.0 is the final version for which there will be an individual
|
||||
shopt option for the previous version. Users should use BBAASSHH__CCOOMMPPAATT on
|
||||
bash-5.0 and later versions.
|
||||
|
||||
The following table describes the behavior changes controlled by each
|
||||
The following table describes the behavior changes controlled by each
|
||||
compatibility level setting. The ccoommppaatt_N_N tag is used as shorthand for
|
||||
setting the compatibility level to _N_N using one of the following mecha-
|
||||
nisms. For versions prior to bash-5.0, the compatibility level may be
|
||||
set using the corresponding ccoommppaatt_N_N shopt option. For bash-4.3 and
|
||||
later versions, the BBAASSHH__CCOOMMPPAATT variable is preferred, and it is re-
|
||||
nisms. For versions prior to bash-5.0, the compatibility level may be
|
||||
set using the corresponding ccoommppaatt_N_N shopt option. For bash-4.3 and
|
||||
later versions, the BBAASSHH__CCOOMMPPAATT variable is preferred, and it is re-
|
||||
quired for bash-5.1 and later versions.
|
||||
|
||||
ccoommppaatt3311
|
||||
@@ -2045,85 +2046,85 @@ SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
|
||||
ator (=~) has no special effect
|
||||
|
||||
ccoommppaatt3322
|
||||
+o interrupting a command list such as "a ; b ; c" causes
|
||||
the execution of the next command in the list (in
|
||||
bash-4.0 and later versions, the shell acts as if it re-
|
||||
ceived the interrupt, so interrupting one command in a
|
||||
+o interrupting a command list such as "a ; b ; c" causes
|
||||
the execution of the next command in the list (in
|
||||
bash-4.0 and later versions, the shell acts as if it re-
|
||||
ceived the interrupt, so interrupting one command in a
|
||||
list aborts the execution of the entire list)
|
||||
|
||||
ccoommppaatt4400
|
||||
+o the << and >> operators to the [[[[ command do not consider
|
||||
+o the << and >> operators to the [[[[ command do not consider
|
||||
the current locale when comparing strings; they use ASCII
|
||||
ordering. Bash versions prior to bash-4.1 use ASCII col-
|
||||
lation and _s_t_r_c_m_p(3); bash-4.1 and later use the current
|
||||
lation and _s_t_r_c_m_p(3); bash-4.1 and later use the current
|
||||
locale's collation sequence and _s_t_r_c_o_l_l(3).
|
||||
|
||||
ccoommppaatt4411
|
||||
+o in _p_o_s_i_x mode, ttiimmee may be followed by options and still
|
||||
+o in _p_o_s_i_x mode, ttiimmee may be followed by options and still
|
||||
be recognized as a reserved word (this is POSIX interpre-
|
||||
tation 267)
|
||||
+o in _p_o_s_i_x mode, the parser requires that an even number of
|
||||
single quotes occur in the _w_o_r_d portion of a double-
|
||||
quoted parameter expansion and treats them specially, so
|
||||
that characters within the single quotes are considered
|
||||
single quotes occur in the _w_o_r_d portion of a double-
|
||||
quoted parameter expansion and treats them specially, so
|
||||
that characters within the single quotes are considered
|
||||
quoted (this is POSIX interpretation 221)
|
||||
|
||||
ccoommppaatt4422
|
||||
+o the replacement string in double-quoted pattern substitu-
|
||||
tion does not undergo quote removal, as it does in ver-
|
||||
tion does not undergo quote removal, as it does in ver-
|
||||
sions after bash-4.2
|
||||
+o in posix mode, single quotes are considered special when
|
||||
expanding the _w_o_r_d portion of a double-quoted parameter
|
||||
expansion and can be used to quote a closing brace or
|
||||
other special character (this is part of POSIX interpre-
|
||||
tation 221); in later versions, single quotes are not
|
||||
+o in posix mode, single quotes are considered special when
|
||||
expanding the _w_o_r_d portion of a double-quoted parameter
|
||||
expansion and can be used to quote a closing brace or
|
||||
other special character (this is part of POSIX interpre-
|
||||
tation 221); in later versions, single quotes are not
|
||||
special within double-quoted word expansions
|
||||
|
||||
ccoommppaatt4433
|
||||
+o the shell does not print a warning message if an attempt
|
||||
is made to use a quoted compound assignment as an argu-
|
||||
ment to declare (e.g., declare -a foo='(1 2)'). Later
|
||||
+o the shell does not print a warning message if an attempt
|
||||
is made to use a quoted compound assignment as an argu-
|
||||
ment to declare (e.g., declare -a foo='(1 2)'). Later
|
||||
versions warn that this usage is deprecated
|
||||
+o word expansion errors are considered non-fatal errors
|
||||
that cause the current command to fail, even in posix
|
||||
mode (the default behavior is to make them fatal errors
|
||||
+o word expansion errors are considered non-fatal errors
|
||||
that cause the current command to fail, even in posix
|
||||
mode (the default behavior is to make them fatal errors
|
||||
that cause the shell to exit)
|
||||
+o when executing a shell function, the loop state
|
||||
+o when executing a shell function, the loop state
|
||||
(while/until/etc.) is not reset, so bbrreeaakk or ccoonnttiinnuuee in
|
||||
that function will break or continue loops in the calling
|
||||
context. Bash-4.4 and later reset the loop state to pre-
|
||||
context. Bash-4.4 and later reset the loop state to pre-
|
||||
vent this
|
||||
|
||||
ccoommppaatt4444
|
||||
+o the shell sets up the values used by BBAASSHH__AARRGGVV and
|
||||
BBAASSHH__AARRGGCC so they can expand to the shell's positional
|
||||
+o the shell sets up the values used by BBAASSHH__AARRGGVV and
|
||||
BBAASSHH__AARRGGCC so they can expand to the shell's positional
|
||||
parameters even if extended debugging mode is not enabled
|
||||
+o a subshell inherits loops from its parent context, so
|
||||
bbrreeaakk or ccoonnttiinnuuee will cause the subshell to exit.
|
||||
Bash-5.0 and later reset the loop state to prevent the
|
||||
+o a subshell inherits loops from its parent context, so
|
||||
bbrreeaakk or ccoonnttiinnuuee will cause the subshell to exit.
|
||||
Bash-5.0 and later reset the loop state to prevent the
|
||||
exit
|
||||
+o variable assignments preceding builtins like eexxppoorrtt and
|
||||
+o variable assignments preceding builtins like eexxppoorrtt and
|
||||
rreeaaddoonnllyy that set attributes continue to affect variables
|
||||
with the same name in the calling environment even if the
|
||||
shell is not in posix mode
|
||||
|
||||
ccoommppaatt5500
|
||||
+o Bash-5.1 changed the way $$RRAANNDDOOMM is generated to intro-
|
||||
+o Bash-5.1 changed the way $$RRAANNDDOOMM is generated to intro-
|
||||
duce slightly more randomness. If the shell compatibility
|
||||
level is set to 50 or lower, it reverts to the method
|
||||
from bash-5.0 and previous versions, so seeding the ran-
|
||||
dom number generator by assigning a value to RRAANNDDOOMM will
|
||||
level is set to 50 or lower, it reverts to the method
|
||||
from bash-5.0 and previous versions, so seeding the ran-
|
||||
dom number generator by assigning a value to RRAANNDDOOMM will
|
||||
produce the same sequence as in bash-5.0
|
||||
+o If the command hash table is empty, bash versions prior
|
||||
to bash-5.1 printed an informational message to that ef-
|
||||
fect, even when producing output that can be reused as
|
||||
input. Bash-5.1 suppresses that message when the --ll op-
|
||||
+o If the command hash table is empty, bash versions prior
|
||||
to bash-5.1 printed an informational message to that ef-
|
||||
fect, even when producing output that can be reused as
|
||||
input. Bash-5.1 suppresses that message when the --ll op-
|
||||
tion is supplied.
|
||||
|
||||
ccoommppaatt5511
|
||||
+o The uunnsseett builtin treats attempts to unset array sub-
|
||||
scripts @@ and ** differently depending on whether the ar-
|
||||
ray is indexed or associative, and differently than in
|
||||
+o The uunnsseett builtin treats attempts to unset array sub-
|
||||
scripts @@ and ** differently depending on whether the ar-
|
||||
ray is indexed or associative, and differently than in
|
||||
previous versions.
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
|
||||
+2
-2
@@ -2,10 +2,10 @@
|
||||
Copyright (C) 1988-2023 Free Software Foundation, Inc.
|
||||
@end ignore
|
||||
|
||||
@set LASTCHANGE Wed Jul 19 14:23:20 EDT 2023
|
||||
@set LASTCHANGE Wed Jul 26 09:57:28 EDT 2023
|
||||
|
||||
@set EDITION 5.3
|
||||
@set VERSION 5.3
|
||||
|
||||
@set UPDATED 19 July 2023
|
||||
@set UPDATED 26 July 2023
|
||||
@set UPDATED-MONTH July 2023
|
||||
|
||||
+11
-11
@@ -119,13 +119,13 @@ is followed immediately by a newline.
|
||||
If \fIstring\fP is missing, the string from the most recent search is used;
|
||||
it is an error if there is no previous search string.
|
||||
.TP
|
||||
.B \d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u
|
||||
.B \d\s+2\(ha\s-2\u\fIstring1\fP\d\s+2\(ha\s-2\u\fIstring2\fP\d\s+2\(ha\s-2\u
|
||||
Quick substitution. Repeat the last command, replacing
|
||||
.I string1
|
||||
with
|
||||
.IR string2 .
|
||||
Equivalent to
|
||||
``!!:s\d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u''
|
||||
``!!:s\d\s+2\(ha\s-2\u\fIstring1\fP\d\s+2\(ha\s-2\u\fIstring2\fP\d\s+2\(ha\s-2\u''
|
||||
(see \fBModifiers\fP below).
|
||||
.TP
|
||||
.B !#
|
||||
@@ -137,7 +137,7 @@ A
|
||||
.B :
|
||||
separates the event specification from the word designator.
|
||||
It may be omitted if the word designator begins with a
|
||||
.BR ^ ,
|
||||
.BR \(ha ,
|
||||
.BR $ ,
|
||||
.BR * ,
|
||||
.BR \- ,
|
||||
@@ -156,7 +156,7 @@ word.
|
||||
.I n
|
||||
The \fIn\fRth word.
|
||||
.TP
|
||||
.B ^
|
||||
.B \(ha
|
||||
The first argument. That is, word 1.
|
||||
.TP
|
||||
.B $
|
||||
@@ -497,7 +497,7 @@ This section documents the functions for managing a history file.
|
||||
|
||||
.Fn1 int read_history "const char *filename"
|
||||
Add the contents of \fIfilename\fP to the history list, a line at a time.
|
||||
If \fIfilename\fP is \fBNULL\fP, then read from \fI~/.history\fP.
|
||||
If \fIfilename\fP is \fBNULL\fP, then read from \fI\(ti/.history\fP.
|
||||
Returns 0 if successful, or \fBerrno\fP if not.
|
||||
|
||||
.Fn3 int read_history_range "const char *filename" "int from" "int to"
|
||||
@@ -505,25 +505,25 @@ Read a range of lines from \fIfilename\fP, adding them to the history list.
|
||||
Start reading at line \fIfrom\fP and end at \fIto\fP.
|
||||
If \fIfrom\fP is zero, start at the beginning. If \fIto\fP is less than
|
||||
\fIfrom\fP, then read until the end of the file. If \fIfilename\fP is
|
||||
\fBNULL\fP, then read from \fI~/.history\fP. Returns 0 if successful,
|
||||
\fBNULL\fP, then read from \fI\(ti/.history\fP. Returns 0 if successful,
|
||||
or \fBerrno\fP if not.
|
||||
|
||||
.Fn1 int write_history "const char *filename"
|
||||
Write the current history to \fIfilename\fP, overwriting \fIfilename\fP
|
||||
if necessary.
|
||||
If \fIfilename\fP is \fBNULL\fP, then write the history list to \fI~/.history\fP.
|
||||
If \fIfilename\fP is \fBNULL\fP, then write the history list to \fI\(ti/.history\fP.
|
||||
Returns 0 on success, or \fBerrno\fP on a read or write error.
|
||||
|
||||
|
||||
.Fn2 int append_history "int nelements" "const char *filename"
|
||||
Append the last \fInelements\fP of the history list to \fIfilename\fP.
|
||||
If \fIfilename\fP is \fBNULL\fP, then append to \fI~/.history\fP.
|
||||
If \fIfilename\fP is \fBNULL\fP, then append to \fI\(ti/.history\fP.
|
||||
Returns 0 on success, or \fBerrno\fP on a read or write error.
|
||||
|
||||
.Fn2 int history_truncate_file "const char *filename" "int nlines"
|
||||
Truncate the history file \fIfilename\fP, leaving only the last
|
||||
\fInlines\fP lines.
|
||||
If \fIfilename\fP is \fBNULL\fP, then \fI~/.history\fP is truncated.
|
||||
If \fIfilename\fP is \fBNULL\fP, then \fI\(ti/.history\fP is truncated.
|
||||
Returns 0 on success, or \fBerrno\fP on failure.
|
||||
|
||||
.SS History Expansion
|
||||
@@ -604,7 +604,7 @@ Setting this to 0 inhibits history expansion.
|
||||
|
||||
.Vb char history_subst_char
|
||||
The character that invokes word substitution if found at the start of
|
||||
a line. The default is \fB^\fP.
|
||||
a line. The default is \fB\(ha\fP.
|
||||
|
||||
.Vb char history_comment_char
|
||||
During tokenization, if this character is seen as the first character
|
||||
@@ -643,7 +643,7 @@ By default, this variable is set to \fBNULL\fP.
|
||||
.SH FILES
|
||||
.PD 0
|
||||
.TP
|
||||
.FN ~/.history
|
||||
.FN \(ti/.history
|
||||
Default filename for reading and writing saved history
|
||||
.PD
|
||||
.SH "SEE ALSO"
|
||||
|
||||
+10
-10
@@ -116,7 +116,7 @@ file (the \fIinputrc\fP file).
|
||||
The name of this file is taken from the value of the
|
||||
.B INPUTRC
|
||||
environment variable. If that variable is unset, the default is
|
||||
.IR ~/.inputrc .
|
||||
.IR \(ti/.inputrc .
|
||||
If that file does not exist or cannot be read, the ultimate default is
|
||||
.IR /etc/inputrc .
|
||||
When a program which uses the readline library starts up, the
|
||||
@@ -215,7 +215,7 @@ are not recognized.
|
||||
.br
|
||||
"\eC\-x\eC\-r": re\-read\-init\-file
|
||||
.br
|
||||
"\ee[11~": "Function Key 1"
|
||||
"\ee[11\(ti": "Function Key 1"
|
||||
.RE
|
||||
.PP
|
||||
In this example,
|
||||
@@ -226,7 +226,7 @@ is again bound to the function
|
||||
is bound to the function
|
||||
.BR re\-read\-init\-file ,
|
||||
and
|
||||
.I "ESC [ 1 1 ~"
|
||||
.I "ESC [ 1 1 \(ti"
|
||||
is bound to insert the text
|
||||
.if t \f(CWFunction Key 1\fP.
|
||||
.if n ``Function Key 1''.
|
||||
@@ -1156,7 +1156,7 @@ The actual completion performed is application-specific.
|
||||
.BR Bash ,
|
||||
for instance, attempts completion treating the text as a variable
|
||||
(if the text begins with \fB$\fP), username (if the text begins with
|
||||
\fB~\fP), hostname (if the text begins with \fB@\fP), or
|
||||
\fB\(ti\fP), hostname (if the text begins with \fB@\fP), or
|
||||
command (including aliases and functions) in turn. If none
|
||||
of these produces a match, filename completion is attempted.
|
||||
.BR Gdb ,
|
||||
@@ -1388,7 +1388,7 @@ Emacs Standard bindings
|
||||
"C-_" undo
|
||||
"\^ " to "/" self-insert
|
||||
"0" to "9" self-insert
|
||||
":" to "~" self-insert
|
||||
":" to "\(ti" self-insert
|
||||
"C-?" backward-delete-char
|
||||
.PP
|
||||
Emacs Meta bindings
|
||||
@@ -1435,7 +1435,7 @@ Emacs Meta bindings
|
||||
"M-U" upcase-word
|
||||
"M-Y" yank-pop
|
||||
"M-\e" delete-horizontal-space
|
||||
"M-~" tilde-expand
|
||||
"M-\(ti" tilde-expand
|
||||
"M-C-?" backward-kill-word
|
||||
"M-_" yank-last-arg
|
||||
.PP
|
||||
@@ -1473,7 +1473,7 @@ VI Insert Mode functions
|
||||
"C-Y" yank
|
||||
"C-[" vi-movement-mode
|
||||
"C-_" undo
|
||||
"\^ " to "~" self-insert
|
||||
"\^ " to "\(ti" self-insert
|
||||
"C-?" backward-delete-char
|
||||
.PP
|
||||
VI Command Mode functions
|
||||
@@ -1531,7 +1531,7 @@ VI Command Mode functions
|
||||
"X" backward-delete-char
|
||||
"Y" vi-yank-to
|
||||
"\e" vi-complete
|
||||
"^" vi-first-print
|
||||
"\(ha" vi-first-print
|
||||
"_" vi-yank-arg
|
||||
"`" vi-goto-mark
|
||||
"a" vi-append-mode
|
||||
@@ -1556,7 +1556,7 @@ VI Command Mode functions
|
||||
"x" vi-delete
|
||||
"y" vi-yank-to
|
||||
"|" vi-column
|
||||
"~" vi-change-case
|
||||
"\(ti" vi-change-case
|
||||
.RE
|
||||
.SH "SEE ALSO"
|
||||
.PD 0
|
||||
@@ -1570,7 +1570,7 @@ VI Command Mode functions
|
||||
.SH FILES
|
||||
.PD 0
|
||||
.TP
|
||||
.FN ~/.inputrc
|
||||
.FN \(ti/.inputrc
|
||||
Individual \fBreadline\fP initialization file
|
||||
.PD
|
||||
.SH AUTHORS
|
||||
|
||||
+4
-4
@@ -449,7 +449,7 @@ make_cond_command (COND_COM *cond_node)
|
||||
}
|
||||
|
||||
COMMAND *
|
||||
make_bare_simple_command (void)
|
||||
make_bare_simple_command (int line)
|
||||
{
|
||||
COMMAND *command;
|
||||
SIMPLE_COM *temp;
|
||||
@@ -458,7 +458,7 @@ make_bare_simple_command (void)
|
||||
command->value.Simple = temp = (SIMPLE_COM *)xmalloc (sizeof (SIMPLE_COM));
|
||||
|
||||
temp->flags = 0;
|
||||
temp->line = line_number;
|
||||
temp->line = line;
|
||||
temp->words = (WORD_LIST *)NULL;
|
||||
temp->redirects = (REDIRECT *)NULL;
|
||||
|
||||
@@ -472,14 +472,14 @@ make_bare_simple_command (void)
|
||||
/* Return a command which is the connection of the word or redirection
|
||||
in ELEMENT, and the command * or NULL in COMMAND. */
|
||||
COMMAND *
|
||||
make_simple_command (ELEMENT element, COMMAND *command)
|
||||
make_simple_command (ELEMENT element, COMMAND *command, int line)
|
||||
{
|
||||
/* If we are starting from scratch, then make the initial command
|
||||
structure. Also note that we have to fill in all the slots, since
|
||||
malloc doesn't return zeroed space. */
|
||||
if (command == 0)
|
||||
{
|
||||
command = make_bare_simple_command ();
|
||||
command = make_bare_simple_command (line);
|
||||
parser_state |= PST_REDIRLIST;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -46,8 +46,8 @@ extern PATTERN_LIST *make_pattern_list (WORD_LIST *, COMMAND *);
|
||||
extern COMMAND *make_if_command (COMMAND *, COMMAND *, COMMAND *);
|
||||
extern COMMAND *make_while_command (COMMAND *, COMMAND *);
|
||||
extern COMMAND *make_until_command (COMMAND *, COMMAND *);
|
||||
extern COMMAND *make_bare_simple_command (void);
|
||||
extern COMMAND *make_simple_command (ELEMENT, COMMAND *);
|
||||
extern COMMAND *make_bare_simple_command (int);
|
||||
extern COMMAND *make_simple_command (ELEMENT, COMMAND *, int);
|
||||
extern void make_here_document (REDIRECT *, int);
|
||||
extern REDIRECT *make_redirection (REDIRECTEE, enum r_instruction, REDIRECTEE, int);
|
||||
extern COMMAND *make_function_def (WORD_DESC *, COMMAND *, int, int);
|
||||
|
||||
@@ -310,6 +310,9 @@ static int shell_input_line_terminator;
|
||||
shell_ungetc when we're at the start of a line. */
|
||||
static int eol_ungetc_lookahead = 0;
|
||||
|
||||
static int simplecmd_lineno = -1;
|
||||
static int save_simple_lineno = -1;
|
||||
|
||||
/* The line number in a script on which a function definition starts. */
|
||||
static int function_dstart;
|
||||
static int save_dstart = -1;
|
||||
@@ -791,7 +794,11 @@ simple_command_element: WORD
|
||||
| ASSIGNMENT_WORD
|
||||
{ $$.word = $1; $$.redirect = 0; }
|
||||
| redirection
|
||||
{ $$.redirect = $1; $$.word = 0; }
|
||||
{
|
||||
if (simplecmd_lineno == -1)
|
||||
simplecmd_lineno = line_number; /* XXX */
|
||||
$$.redirect = $1; $$.word = 0;
|
||||
}
|
||||
;
|
||||
|
||||
redirection_list: redirection
|
||||
@@ -810,13 +817,13 @@ redirection_list: redirection
|
||||
;
|
||||
|
||||
simple_command: simple_command_element
|
||||
{ $$ = make_simple_command ($1, (COMMAND *)NULL); }
|
||||
{ $$ = make_simple_command ($1, (COMMAND *)NULL, simplecmd_lineno); }
|
||||
| simple_command simple_command_element
|
||||
{ $$ = make_simple_command ($2, $1); }
|
||||
{ $$ = make_simple_command ($2, $1, line_number); }
|
||||
;
|
||||
|
||||
command: simple_command
|
||||
{ $$ = clean_simple_command ($1); }
|
||||
{ $$ = clean_simple_command ($1); simplecmd_lineno = -1; }
|
||||
| shell_command
|
||||
{ $$ = $1; }
|
||||
| shell_command redirection_list
|
||||
@@ -999,7 +1006,7 @@ case_command: CASE WORD newline_list IN newline_list ESAC
|
||||
;
|
||||
|
||||
function_def: WORD '(' ')' newline_list function_body
|
||||
{ $$ = make_function_def ($1, $5, function_dstart, function_bstart); function_dstart = save_dstart; }
|
||||
{ $$ = make_function_def ($1, $5, function_dstart, function_bstart); function_dstart = save_dstart; simplecmd_lineno = -1; }
|
||||
| FUNCTION WORD '(' ')' newline_list function_body
|
||||
{ $$ = make_function_def ($2, $6, function_dstart, function_bstart); function_dstart = save_dstart; }
|
||||
| FUNCTION WORD function_body
|
||||
@@ -1362,7 +1369,7 @@ pipeline_command: pipeline
|
||||
terminate this, one to terminate the command) */
|
||||
x.word = 0;
|
||||
x.redirect = 0;
|
||||
$$ = make_simple_command (x, (COMMAND *)NULL);
|
||||
$$ = make_simple_command (x, (COMMAND *)NULL, line_number);
|
||||
$$->flags |= $1;
|
||||
/* XXX - let's cheat and push a newline back */
|
||||
if ($2 == '\n')
|
||||
@@ -1383,7 +1390,7 @@ pipeline_command: pipeline
|
||||
terminate this, one to terminate the command) */
|
||||
x.word = 0;
|
||||
x.redirect = 0;
|
||||
$$ = make_simple_command (x, (COMMAND *)NULL);
|
||||
$$ = make_simple_command (x, (COMMAND *)NULL, line_number);
|
||||
$$->flags |= CMD_INVERT_RETURN;
|
||||
/* XXX - let's cheat and push a newline back */
|
||||
if ($2 == '\n')
|
||||
@@ -3404,6 +3411,8 @@ reset_parser (void)
|
||||
redir_stack[0] = 0;
|
||||
esacs_needed_count = expecting_in_token = 0;
|
||||
|
||||
simplecmd_lineno = line_number;
|
||||
|
||||
current_token = '\n'; /* XXX */
|
||||
last_read_token = '\n';
|
||||
token_to_read = '\n';
|
||||
@@ -4315,7 +4324,8 @@ static char *
|
||||
parse_comsub (int qc, int open, int close, size_t *lenp, int flags)
|
||||
{
|
||||
int peekc, r;
|
||||
int start_lineno, dolbrace_spec, local_extglob, was_extpat;
|
||||
int dolbrace_spec, local_extglob, was_extpat;
|
||||
int start_lineno, save_lineno;
|
||||
int was_word, was_newline, was_semi, was_amp;
|
||||
char *ret, *tcmd;
|
||||
size_t retlen;
|
||||
@@ -4357,6 +4367,7 @@ parse_comsub (int qc, int open, int close, size_t *lenp, int flags)
|
||||
|
||||
/*debug_parser(1);*/
|
||||
start_lineno = line_number;
|
||||
save_lineno = simplecmd_lineno;
|
||||
|
||||
save_parser_state (&ps);
|
||||
|
||||
@@ -4482,6 +4493,8 @@ INTERNAL_DEBUG(("current_token (%d) != shell_eof_token (%c)", current_token, she
|
||||
restore_parser_state (&ps);
|
||||
pushed_string_list = saved_strings;
|
||||
|
||||
simplecmd_lineno = save_lineno;
|
||||
|
||||
tcmd = print_comsub (parsed_command); /* returns static memory */
|
||||
retlen = strlen (tcmd);
|
||||
if (open == '(') /* ) */
|
||||
@@ -4541,12 +4554,14 @@ xparse_dolparen (const char *base, char *string, int *indp, int flags)
|
||||
sh_parser_state_t ps;
|
||||
sh_input_line_state_t ls;
|
||||
int orig_ind, nc, sflags, start_lineno, local_extglob, funsub, closer;
|
||||
int save_lineno;
|
||||
char *ret, *ep, *ostring;
|
||||
|
||||
/*debug_parser(1);*/
|
||||
orig_ind = *indp;
|
||||
ostring = string;
|
||||
start_lineno = line_number;
|
||||
save_lineno = simplecmd_lineno;
|
||||
|
||||
if (*string == 0)
|
||||
{
|
||||
@@ -4613,6 +4628,8 @@ xparse_dolparen (const char *base, char *string, int *indp, int flags)
|
||||
#endif
|
||||
token_to_read = 0;
|
||||
|
||||
simplecmd_lineno = save_lineno;
|
||||
|
||||
/* If parse_string returns < 0, we need to jump to top level with the
|
||||
negative of the return value. We abandon the rest of this input line
|
||||
first */
|
||||
@@ -5682,6 +5699,10 @@ got_token:
|
||||
result = ((the_word->flags & (W_ASSIGNMENT|W_NOSPLIT)) == (W_ASSIGNMENT|W_NOSPLIT))
|
||||
? ASSIGNMENT_WORD : WORD;
|
||||
|
||||
/* Are we potentially starting a simple command? */
|
||||
if (command_token_position (last_read_token))
|
||||
simplecmd_lineno = line_number;
|
||||
|
||||
switch (last_read_token)
|
||||
{
|
||||
case FUNCTION:
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
./comsub.tests: line 20: hijkl: command not found
|
||||
./comsub.tests: line 19: hijkl: command not found
|
||||
argv[1] = <ab>
|
||||
argv[2] = <cd>
|
||||
argv[1] = <abmn>
|
||||
|
||||
+2
-2
@@ -21,8 +21,8 @@ aa,bb
|
||||
JOBaa bb cc ddCONTROL
|
||||
./comsub2.tests: line 68: p: command not found
|
||||
NOTFOUND
|
||||
./comsub2.tests: line 79: p: command not found
|
||||
./comsub2.tests: line 79: p: command not found
|
||||
./comsub2.tests: line 75: p: command not found
|
||||
./comsub2.tests: line 75: p: command not found
|
||||
expand_aliases off
|
||||
expand_aliases off
|
||||
outside:
|
||||
|
||||
+2
-2
@@ -124,8 +124,8 @@ argv[3] = <ve>
|
||||
foo bar
|
||||
./heredoc7.sub: line 21: after: command not found
|
||||
./heredoc7.sub: line 29: warning: here-document at line 29 delimited by end-of-file (wanted `EOF')
|
||||
./heredoc7.sub: line 29: foobar: command not found
|
||||
./heredoc7.sub: line 30: EOF: command not found
|
||||
./heredoc7.sub: line 26: foobar: command not found
|
||||
./heredoc7.sub: line 27: EOF: command not found
|
||||
grep: *.c: No such file or directory
|
||||
foo ()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user