mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-27 15:43:18 +02:00
wait -n' notifies on a job it returns; in posix mode, wait' defers notification on a reaped pid unless the shell is interactive, as posix now specifies
This commit is contained in:
@@ -10163,3 +10163,34 @@ builtins/printf.def
|
||||
to a closing right paren, rejecting the format if it's not a `)'
|
||||
when the loop breaks
|
||||
Report from Andrey Kovalev <i.not.student@yandex.ru>
|
||||
|
||||
9/6
|
||||
---
|
||||
jobs.c,jobs.h
|
||||
- notify_and_cleanup: now takes an argument saying which job to notify
|
||||
about; if arg is -1 it notifies about all jobs as previously
|
||||
- maybe_print_job_notifications: convenience function to encapsulate
|
||||
policy about when to call notify_of_job_status in one place; called
|
||||
by notify_and_cleanup
|
||||
- notify_of_job_status,maybe_print_job_notifications: now take an int
|
||||
argument with the same semantics as notify_and_cleanup
|
||||
- wait_for_any_job: now call notify_of_job_status only on the job we
|
||||
just retrieved and will return
|
||||
- wait_for: don't call notify_and_cleanup if posixly_correct unless
|
||||
the shell is not currently interactive, since posix says we can
|
||||
notify in a non-interactive shell when a foreground job changes
|
||||
state
|
||||
|
||||
jobs.c,parse.y,eval.c,execute_cmd.c,builtins/jobs.def,trap.c
|
||||
- notify_and_cleanup: changed all callers appropriately
|
||||
|
||||
builtins/evalfile.c
|
||||
- _evalfile: renamed to evalfile_internal
|
||||
- evalfile_internal: increment and decrement (or unwind-protect) the
|
||||
value of want_job_notifications; increment it to a non-zero value
|
||||
if the shell is interactive and the compatibility level is <= 52
|
||||
(see change to notify_and_cleanup of 8/26)
|
||||
|
||||
jobs.c
|
||||
- maybe_print_job_notifications: remove clause testing sourcelevel;
|
||||
use want_job_notifications for this
|
||||
|
||||
+13
-8
@@ -58,7 +58,7 @@
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
/* Flags for _evalfile() */
|
||||
/* Flags for evalfile_internal() */
|
||||
#define FEVAL_ENOENTOK 0x001
|
||||
#define FEVAL_BUILTIN 0x002
|
||||
#define FEVAL_UNWINDPROT 0x004
|
||||
@@ -74,7 +74,7 @@ extern int errno;
|
||||
int sourcelevel = 0;
|
||||
|
||||
static int
|
||||
_evalfile (const char *filename, int flags)
|
||||
evalfile_internal (const char *filename, int flags)
|
||||
{
|
||||
volatile int old_interactive;
|
||||
procenv_t old_return_catch;
|
||||
@@ -212,13 +212,14 @@ file_error_and_exit:
|
||||
|
||||
if (flags & FEVAL_UNWINDPROT)
|
||||
{
|
||||
begin_unwind_frame ("_evalfile");
|
||||
begin_unwind_frame ("evalfile_internal");
|
||||
|
||||
unwind_protect_int (return_catch_flag);
|
||||
unwind_protect_jmp_buf (return_catch);
|
||||
if (flags & FEVAL_NONINT)
|
||||
unwind_protect_int (interactive);
|
||||
unwind_protect_int (sourcelevel);
|
||||
unwind_protect_int (want_job_notifications);
|
||||
unwind_protect_int (retain_fifos);
|
||||
}
|
||||
else
|
||||
@@ -233,6 +234,8 @@ file_error_and_exit:
|
||||
|
||||
return_catch_flag++;
|
||||
sourcelevel++;
|
||||
if (interactive_shell && shell_compatibility_level <= 52)
|
||||
want_job_notifications++;
|
||||
|
||||
retain_fifos++; /* XXX */
|
||||
|
||||
@@ -297,7 +300,7 @@ file_error_and_exit:
|
||||
result = parse_and_execute (string, filename, pflags);
|
||||
|
||||
if (flags & FEVAL_UNWINDPROT)
|
||||
run_unwind_frame ("_evalfile");
|
||||
run_unwind_frame ("evalfile_internal");
|
||||
else
|
||||
{
|
||||
if (flags & FEVAL_NONINT)
|
||||
@@ -316,6 +319,8 @@ file_error_and_exit:
|
||||
#endif
|
||||
return_catch_flag--;
|
||||
sourcelevel--;
|
||||
if (interactive_shell && shell_compatibility_level <= 52)
|
||||
want_job_notifications--;
|
||||
retain_fifos--;
|
||||
COPY_PROCENV (old_return_catch, return_catch);
|
||||
}
|
||||
@@ -338,7 +343,7 @@ maybe_execute_file (const char *fname, int force_noninteractive)
|
||||
flags = FEVAL_ENOENTOK|FEVAL_RETRY;
|
||||
if (force_noninteractive)
|
||||
flags |= FEVAL_NONINT;
|
||||
result = _evalfile (filename, flags);
|
||||
result = evalfile_internal (filename, flags);
|
||||
free (filename);
|
||||
return result;
|
||||
}
|
||||
@@ -353,7 +358,7 @@ force_execute_file (const char *fname, int force_noninteractive)
|
||||
flags = FEVAL_RETRY;
|
||||
if (force_noninteractive)
|
||||
flags |= FEVAL_NONINT;
|
||||
result = _evalfile (filename, flags);
|
||||
result = evalfile_internal (filename, flags);
|
||||
free (filename);
|
||||
return result;
|
||||
}
|
||||
@@ -368,7 +373,7 @@ fc_execute_file (const char *filename)
|
||||
remember_on_history is set. We use FEVAL_BUILTIN to return
|
||||
the result of parse_and_execute. */
|
||||
flags = FEVAL_ENOENTOK|FEVAL_HISTORY|FEVAL_REGFILE|FEVAL_BUILTIN;
|
||||
return (_evalfile (filename, flags));
|
||||
return (evalfile_internal (filename, flags));
|
||||
}
|
||||
#endif /* HISTORY */
|
||||
|
||||
@@ -383,7 +388,7 @@ source_file (const char *filename, int sflags)
|
||||
/* POSIX shells exit if non-interactive and file error. */
|
||||
if (posixly_correct && interactive_shell == 0 && executing_command_builtin == 0)
|
||||
flags |= FEVAL_LONGJMP;
|
||||
rval = _evalfile (filename, flags);
|
||||
rval = evalfile_internal (filename, flags);
|
||||
|
||||
run_return_trap ();
|
||||
return rval;
|
||||
|
||||
+2
-2
@@ -138,7 +138,7 @@ jobs_builtin (WORD_LIST *list)
|
||||
list_all_jobs (form);
|
||||
/* POSIX says to remove terminated jobs from the list after the jobs
|
||||
builtin reports their status. */
|
||||
notify_and_cleanup (); /* the notify part will be a no-op */
|
||||
notify_and_cleanup (-1); /* the notify part will be a no-op */
|
||||
break;
|
||||
case JSTATE_RUNNING:
|
||||
list_running_jobs (form);
|
||||
@@ -168,7 +168,7 @@ jobs_builtin (WORD_LIST *list)
|
||||
}
|
||||
/* POSIX says to remove terminated jobs from the list after the jobs
|
||||
builtin reports their status. */
|
||||
notify_and_cleanup ();
|
||||
notify_and_cleanup (-1); /* XXX - why here? list_one_job already deletes dead jobs */
|
||||
|
||||
return (any_failed ? EXECUTION_FAILURE : EXECUTION_SUCCESS);
|
||||
}
|
||||
|
||||
+225
-192
@@ -772,15 +772,16 @@ PPAARRAAMMEETTEERRSS
|
||||
only be referenced; assignment to them is not allowed.
|
||||
** Expands to the positional parameters, starting from one. When
|
||||
the expansion is not within double quotes, each positional para-
|
||||
meter expands to a separate word. In contexts where it is per-
|
||||
formed, those words are subject to further word splitting and
|
||||
pathname expansion. When the expansion occurs within double
|
||||
quotes, it expands to a single word with the value of each para-
|
||||
meter separated by the first character of the IIFFSS special vari-
|
||||
able. That is, ""$$**"" is equivalent to ""$$11_c$$22_c......"", where _c is
|
||||
the first character of the value of the IIFFSS variable. If IIFFSS is
|
||||
unset, the parameters are separated by spaces. If IIFFSS is null,
|
||||
the parameters are joined without intervening separators.
|
||||
meter expands to a separate word. In contexts where these ex-
|
||||
pansions are performed, those words are subject to further word
|
||||
splitting and pathname expansion. When the expansion occurs
|
||||
within double quotes, it expands to a single word with the value
|
||||
of each parameter separated by the first character of the IIFFSS
|
||||
special variable. That is, ""$$**"" is equivalent to ""$$11_c$$22_c......"",
|
||||
where _c is the first character of the value of the IIFFSS variable.
|
||||
If IIFFSS is unset, the parameters are separated by spaces. If IIFFSS
|
||||
is null, the parameters are joined without intervening separa-
|
||||
tors.
|
||||
@@ Expands to the positional parameters, starting from one. In
|
||||
contexts where word splitting is performed, this expands each
|
||||
positional parameter to a separate word; if not within double
|
||||
@@ -796,8 +797,8 @@ PPAARRAAMMEETTEERRSS
|
||||
word. When there are no positional parameters, ""$$@@"" and $$@@ ex-
|
||||
pand to nothing (i.e., they are removed).
|
||||
## Expands to the number of positional parameters in decimal.
|
||||
?? Expands to the exit status of the most recently executed fore-
|
||||
ground command.
|
||||
?? Expands to the exit status of the most recently executed com-
|
||||
mand.
|
||||
-- Expands to the current option flags as specified upon invoca-
|
||||
tion, by the sseett builtin command, or those set by the shell it-
|
||||
self (such as the --ii option).
|
||||
@@ -3191,40 +3192,41 @@ JJOOBB CCOONNTTRROOLL
|
||||
|
||||
The shell learns immediately whenever a job changes state. Normally,
|
||||
bbaasshh waits until it is about to print a prompt before reporting changes
|
||||
in a job's status so as to not interrupt any other output. If the --bb
|
||||
option to the sseett builtin command is enabled, bbaasshh reports such changes
|
||||
immediately. Any trap on SSIIGGCCHHLLDD is executed for each child that ex-
|
||||
its.
|
||||
in a job's status so as to not interrupt any other output, though it
|
||||
will notify of changes in a job's status after a command in a list com-
|
||||
pletes, before executing the next command. If the --bb option to the sseett
|
||||
builtin command is enabled, bbaasshh reports such changes immediately. Any
|
||||
trap on SSIIGGCCHHLLDD is executed for each child that exits.
|
||||
|
||||
If an attempt to exit bbaasshh is made while jobs are stopped (or, if the
|
||||
cchheecckkjjoobbss shell option has been enabled using the sshhoopptt builtin, run-
|
||||
If an attempt to exit bbaasshh is made while jobs are stopped (or, if the
|
||||
cchheecckkjjoobbss shell option has been enabled using the sshhoopptt builtin, run-
|
||||
ning), the shell prints a warning message, and, if the cchheecckkjjoobbss option
|
||||
is enabled, lists the jobs and their statuses. The jjoobbss command may
|
||||
then be used to inspect their status. If a second attempt to exit is
|
||||
made without an intervening command, the shell does not print another
|
||||
is enabled, lists the jobs and their statuses. The jjoobbss command may
|
||||
then be used to inspect their status. If a second attempt to exit is
|
||||
made without an intervening command, the shell does not print another
|
||||
warning, and any stopped jobs are terminated.
|
||||
|
||||
When the shell is waiting for a job or process using the wwaaiitt builtin,
|
||||
and job control is enabled, wwaaiitt will return when the job changes
|
||||
state. The --ff option causes wwaaiitt to wait until the job or process ter-
|
||||
When the shell is waiting for a job or process using the wwaaiitt builtin,
|
||||
and job control is enabled, wwaaiitt will return when the job changes
|
||||
state. The --ff option causes wwaaiitt to wait until the job or process ter-
|
||||
minates before returning.
|
||||
|
||||
PPRROOMMPPTTIINNGG
|
||||
When executing interactively, bbaasshh displays the primary prompt PPSS11 when
|
||||
it is ready to read a command, and the secondary prompt PPSS22 when it
|
||||
needs more input to complete a command. BBaasshh displays PPSS00 after it
|
||||
reads a command but before executing it. BBaasshh displays PPSS44 as de-
|
||||
scribed above before tracing each command when the --xx option is en-
|
||||
abled. BBaasshh allows these prompt strings to be customized by inserting
|
||||
a number of backslash-escaped special characters that are decoded as
|
||||
it is ready to read a command, and the secondary prompt PPSS22 when it
|
||||
needs more input to complete a command. BBaasshh displays PPSS00 after it
|
||||
reads a command but before executing it. BBaasshh displays PPSS44 as de-
|
||||
scribed above before tracing each command when the --xx option is en-
|
||||
abled. BBaasshh allows these prompt strings to be customized by inserting
|
||||
a number of backslash-escaped special characters that are decoded as
|
||||
follows:
|
||||
\\aa an ASCII bell character (07)
|
||||
\\dd the date in "Weekday Month Date" format (e.g., "Tue May
|
||||
\\dd the date in "Weekday Month Date" format (e.g., "Tue May
|
||||
26")
|
||||
\\DD{{_f_o_r_m_a_t}}
|
||||
the _f_o_r_m_a_t is passed to _s_t_r_f_t_i_m_e(3) and the result is in-
|
||||
serted into the prompt string; an empty _f_o_r_m_a_t results in
|
||||
a locale-specific time representation. The braces are
|
||||
a locale-specific time representation. The braces are
|
||||
required
|
||||
\\ee an ASCII escape character (033)
|
||||
\\hh the hostname up to the first "."
|
||||
@@ -3233,7 +3235,7 @@ PPRROOMMPPTTIINNGG
|
||||
\\ll the basename of the shell's terminal device name
|
||||
\\nn newline
|
||||
\\rr carriage return
|
||||
\\ss the name of the shell, the basename of $$00 (the portion
|
||||
\\ss the name of the shell, the basename of $$00 (the portion
|
||||
following the final slash)
|
||||
\\tt the current time in 24-hour HH:MM:SS format
|
||||
\\TT the current time in 12-hour HH:MM:SS format
|
||||
@@ -3242,8 +3244,8 @@ PPRROOMMPPTTIINNGG
|
||||
\\uu the username of the current user
|
||||
\\vv the version of bbaasshh (e.g., 2.00)
|
||||
\\VV the release of bbaasshh, version + patch level (e.g., 2.00.0)
|
||||
\\ww the value of the PPWWDD shell variable ($$PPWWDD), with $$HHOOMMEE
|
||||
abbreviated with a tilde (uses the value of the
|
||||
\\ww the value of the PPWWDD shell variable ($$PPWWDD), with $$HHOOMMEE
|
||||
abbreviated with a tilde (uses the value of the
|
||||
PPRROOMMPPTT__DDIIRRTTRRIIMM variable)
|
||||
\\WW the basename of $$PPWWDD, with $$HHOOMMEE abbreviated with a tilde
|
||||
\\!! the history number of this command
|
||||
@@ -3251,70 +3253,82 @@ PPRROOMMPPTTIINNGG
|
||||
\\$$ if the effective UID is 0, a ##, otherwise a $$
|
||||
\\_n_n_n the character corresponding to the octal number _n_n_n
|
||||
\\\\ a backslash
|
||||
\\[[ begin a sequence of non-printing characters, which could
|
||||
be used to embed a terminal control sequence into the
|
||||
\\[[ begin a sequence of non-printing characters, which could
|
||||
be used to embed a terminal control sequence into the
|
||||
prompt
|
||||
\\]] end a sequence of non-printing characters
|
||||
|
||||
The command number and the history number are usually different: the
|
||||
history number of a command is its position in the history list, which
|
||||
may include commands restored from the history file (see HHIISSTTOORRYY be-
|
||||
low), while the command number is the position in the sequence of com-
|
||||
mands executed during the current shell session. After the string is
|
||||
decoded, it is expanded via parameter expansion, command substitution,
|
||||
arithmetic expansion, and quote removal, subject to the value of the
|
||||
The command number and the history number are usually different: the
|
||||
history number of a command is its position in the history list, which
|
||||
may include commands restored from the history file (see HHIISSTTOORRYY be-
|
||||
low), while the command number is the position in the sequence of com-
|
||||
mands executed during the current shell session. After the string is
|
||||
decoded, it is expanded via parameter expansion, command substitution,
|
||||
arithmetic expansion, and quote removal, subject to the value of the
|
||||
pprroommppttvvaarrss shell option (see the description of the sshhoopptt command under
|
||||
SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). This can have unwanted side effects if
|
||||
escaped portions of the string appear within command substitution or
|
||||
SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). This can have unwanted side effects if
|
||||
escaped portions of the string appear within command substitution or
|
||||
contain characters special to word expansion.
|
||||
|
||||
RREEAADDLLIINNEE
|
||||
This is the library that handles reading input when using an interac-
|
||||
This is the library that handles reading input when using an interac-
|
||||
tive shell, unless the ----nnooeeddiittiinngg option is given at shell invocation.
|
||||
Line editing is also used when using the --ee option to the rreeaadd builtin.
|
||||
By default, the line editing commands are similar to those of Emacs. A
|
||||
vi-style line editing interface is also available. Line editing can be
|
||||
enabled at any time using the --oo eemmaaccss or --oo vvii options to the sseett
|
||||
builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). To turn off line editing
|
||||
after the shell is running, use the ++oo eemmaaccss or ++oo vvii options to the
|
||||
enabled at any time using the --oo eemmaaccss or --oo vvii options to the sseett
|
||||
builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). To turn off line editing
|
||||
after the shell is running, use the ++oo eemmaaccss or ++oo vvii options to the
|
||||
sseett builtin.
|
||||
|
||||
RReeaaddlliinnee NNoottaattiioonn
|
||||
In this section, the Emacs-style notation is used to denote keystrokes.
|
||||
Control keys are denoted by C-_k_e_y, e.g., C-n means Control-N. Simi-
|
||||
larly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x means Meta-X. (On key-
|
||||
boards without a _m_e_t_a key, M-_x means ESC _x, i.e., press the Escape key
|
||||
then the _x key. This makes ESC the _m_e_t_a _p_r_e_f_i_x. The combination M-C-_x
|
||||
means ESC-Control-_x, or press the Escape key then hold the Control key
|
||||
while pressing the _x key.)
|
||||
Control keys are denoted by C-_k_e_y, e.g., C-n means Control-N. Simi-
|
||||
larly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x means Meta-X.
|
||||
|
||||
On keyboards without a _M_e_t_a key, M-_x means ESC _x, i.e., press the Es-
|
||||
cape key then the _x key. This makes ESC the _m_e_t_a _p_r_e_f_i_x. The combina-
|
||||
tion M-C-_x means ESC-Control-_x, or press the Escape key then hold the
|
||||
Control key while pressing the _x key.)
|
||||
|
||||
On some keyboards, the Meta key modifier produces meta characters with
|
||||
the eighth bit (0200) set (you can use the eennaabbllee--mmeettaa--kkeeyy variable to
|
||||
control whether or not it does this, if the keyboard allows it). On
|
||||
many others, the terminal or terminal emulator converts the metafied
|
||||
key to a key sequence beginning with ESC as described in the preceding
|
||||
paragraph.
|
||||
|
||||
If the _M_e_t_a key produces a key sequence with the ESC meta prefix, you
|
||||
can make M-_k_e_y key bindings you specify (see RReeaaddlliinnee KKeeyy BBiinnddiinnggss be-
|
||||
low) do the same thing by setting the ffoorrccee--mmeettaa--pprreeffiixx variable.
|
||||
|
||||
Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which normally act as
|
||||
a repeat count. Sometimes, however, it is the sign of the argument
|
||||
that is significant. Passing a negative argument to a command that
|
||||
acts in the forward direction (e.g., kkiillll--lliinnee) causes that command to
|
||||
act in a backward direction. Commands whose behavior with arguments
|
||||
a repeat count. Sometimes, however, it is the sign of the argument
|
||||
that is significant. Passing a negative argument to a command that
|
||||
acts in the forward direction (e.g., kkiillll--lliinnee) causes that command to
|
||||
act in a backward direction. Commands whose behavior with arguments
|
||||
deviates from this are noted below.
|
||||
|
||||
When a command is described as _k_i_l_l_i_n_g text, the text deleted is saved
|
||||
When a command is described as _k_i_l_l_i_n_g text, the text deleted is saved
|
||||
for possible future retrieval (_y_a_n_k_i_n_g). The killed text is saved in a
|
||||
_k_i_l_l _r_i_n_g. Consecutive kills cause the text to be accumulated into one
|
||||
unit, which can be yanked all at once. Commands which do not kill text
|
||||
separate the chunks of text on the kill ring.
|
||||
|
||||
RReeaaddlliinnee IInniittiiaalliizzaattiioonn
|
||||
Readline is customized by putting commands in an initialization file
|
||||
(the _i_n_p_u_t_r_c file). The name of this file is taken from the value of
|
||||
Readline is customized by putting commands in an initialization file
|
||||
(the _i_n_p_u_t_r_c file). The name of this file is taken from the value of
|
||||
the IINNPPUUTTRRCC variable. If that variable is unset, the default is _~_/_._i_n_-
|
||||
_p_u_t_r_c. If that file does not exist or cannot be read, the ultimate
|
||||
default is _/_e_t_c_/_i_n_p_u_t_r_c. When a program which uses the readline li-
|
||||
brary starts up, the initialization file is read, and the key bindings
|
||||
and variables are set. There are only a few basic constructs allowed
|
||||
in the readline initialization file. Blank lines are ignored. Lines
|
||||
beginning with a ## are comments. Lines beginning with a $$ indicate
|
||||
conditional constructs. Other lines denote key bindings and variable
|
||||
_p_u_t_r_c. If that file does not exist or cannot be read, the ultimate
|
||||
default is _/_e_t_c_/_i_n_p_u_t_r_c. When a program which uses the readline li-
|
||||
brary starts up, the initialization file is read, and the key bindings
|
||||
and variables are set. There are only a few basic constructs allowed
|
||||
in the readline initialization file. Blank lines are ignored. Lines
|
||||
beginning with a ## are comments. Lines beginning with a $$ indicate
|
||||
conditional constructs. Other lines denote key bindings and variable
|
||||
settings.
|
||||
|
||||
The default key-bindings may be changed with an _i_n_p_u_t_r_c file. Other
|
||||
The default key-bindings may be changed with an _i_n_p_u_t_r_c file. Other
|
||||
programs that use this library may add their own commands and bindings.
|
||||
|
||||
For example, placing
|
||||
@@ -3323,18 +3337,18 @@ RREEAADDLLIINNEE
|
||||
or
|
||||
C-Meta-u: universal-argument
|
||||
|
||||
into the _i_n_p_u_t_r_c would make M-C-u execute the readline command _u_n_i_v_e_r_-
|
||||
into the _i_n_p_u_t_r_c would make M-C-u execute the readline command _u_n_i_v_e_r_-
|
||||
_s_a_l_-_a_r_g_u_m_e_n_t.
|
||||
|
||||
The following symbolic character names are recognized: _R_U_B_O_U_T, _D_E_L,
|
||||
The following symbolic character names are recognized: _R_U_B_O_U_T, _D_E_L,
|
||||
_E_S_C, _L_F_D, _N_E_W_L_I_N_E, _R_E_T, _R_E_T_U_R_N, _S_P_C, _S_P_A_C_E, and _T_A_B.
|
||||
|
||||
In addition to command names, readline allows keys to be bound to a
|
||||
In addition to command names, readline allows keys to be bound to a
|
||||
string that is inserted when the key is pressed (a _m_a_c_r_o).
|
||||
|
||||
RReeaaddlliinnee KKeeyy BBiinnddiinnggss
|
||||
The syntax for controlling key bindings in the _i_n_p_u_t_r_c file is simple.
|
||||
All that is required is the name of the command or the text of a macro
|
||||
The syntax for controlling key bindings in the _i_n_p_u_t_r_c file is simple.
|
||||
All that is required is the name of the command or the text of a macro
|
||||
and a key sequence to which it should be bound. The name may be speci-
|
||||
fied in one of two ways: as a symbolic key name, possibly with _M_e_t_a_- or
|
||||
_C_o_n_t_r_o_l_- prefixes, or as a key sequence.
|
||||
@@ -3346,15 +3360,15 @@ RREEAADDLLIINNEE
|
||||
Meta-Rubout: backward-kill-word
|
||||
Control-o: "> output"
|
||||
|
||||
In the above example, _C_-_u is bound to the function uunniivveerrssaall--aarrgguummeenntt,
|
||||
_M_-_D_E_L is bound to the function bbaacckkwwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to
|
||||
run the macro expressed on the right hand side (that is, to insert the
|
||||
In the above example, _C_-_u is bound to the function uunniivveerrssaall--aarrgguummeenntt,
|
||||
_M_-_D_E_L is bound to the function bbaacckkwwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to
|
||||
run the macro expressed on the right hand side (that is, to insert the
|
||||
text "> output" into the line).
|
||||
|
||||
In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyysseeqq differs
|
||||
from kkeeyynnaammee above in that strings denoting an entire key sequence may
|
||||
be specified by placing the sequence within double quotes. Some GNU
|
||||
Emacs style key escapes can be used, as in the following example, but
|
||||
In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyysseeqq differs
|
||||
from kkeeyynnaammee above in that strings denoting an entire key sequence may
|
||||
be specified by placing the sequence within double quotes. Some GNU
|
||||
Emacs style key escapes can be used, as in the following example, but
|
||||
the symbolic character names are not recognized.
|
||||
|
||||
"\C-u": universal-argument
|
||||
@@ -3362,18 +3376,20 @@ RREEAADDLLIINNEE
|
||||
"\e[11~": "Function Key 1"
|
||||
|
||||
In this example, _C_-_u is again bound to the function uunniivveerrssaall--aarrgguummeenntt.
|
||||
_C_-_x _C_-_r is bound to the function rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is
|
||||
_C_-_x _C_-_r is bound to the function rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is
|
||||
bound to insert the text "Function Key 1".
|
||||
|
||||
The full set of GNU Emacs style escape sequences is
|
||||
\\CC-- control prefix
|
||||
\\MM-- meta prefix
|
||||
\\MM-- adding the meta prefix or converting the following char-
|
||||
acter to a meta character, as described below under
|
||||
ffoorrccee--mmeettaa--pprreeffiixx
|
||||
\\ee an escape character
|
||||
\\\\ backslash
|
||||
\\"" literal "
|
||||
\\'' literal '
|
||||
|
||||
In addition to the GNU Emacs style escape sequences, a second set of
|
||||
In addition to the GNU Emacs style escape sequences, a second set of
|
||||
backslash escapes is available:
|
||||
\\aa alert (bell)
|
||||
\\bb backspace
|
||||
@@ -3383,20 +3399,20 @@ RREEAADDLLIINNEE
|
||||
\\rr carriage return
|
||||
\\tt horizontal tab
|
||||
\\vv vertical tab
|
||||
\\_n_n_n the eight-bit character whose value is the octal value
|
||||
\\_n_n_n the eight-bit character whose value is the octal value
|
||||
_n_n_n (one to three digits)
|
||||
\\xx_H_H the eight-bit character whose value is the hexadecimal
|
||||
\\xx_H_H the eight-bit character whose value is the hexadecimal
|
||||
value _H_H (one or two hex digits)
|
||||
|
||||
When entering the text of a macro, single or double quotes must be used
|
||||
to indicate a macro definition. Unquoted text is assumed to be a func-
|
||||
tion name. In the macro body, the backslash escapes described above
|
||||
are expanded. Backslash will quote any other character in the macro
|
||||
tion name. In the macro body, the backslash escapes described above
|
||||
are expanded. Backslash will quote any other character in the macro
|
||||
text, including " and '.
|
||||
|
||||
BBaasshh allows the current readline key bindings to be displayed or modi-
|
||||
fied with the bbiinndd builtin command. The editing mode may be switched
|
||||
during interactive use by using the --oo option to the sseett builtin com-
|
||||
BBaasshh allows the current readline key bindings to be displayed or modi-
|
||||
fied with the bbiinndd builtin command. The editing mode may be switched
|
||||
during interactive use by using the --oo option to the sseett builtin com-
|
||||
mand (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
|
||||
|
||||
RReeaaddlliinnee VVaarriiaabblleess
|
||||
@@ -3407,109 +3423,111 @@ RREEAADDLLIINNEE
|
||||
sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e
|
||||
or using the bbiinndd builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
|
||||
|
||||
Except where noted, readline variables can take the values OOnn or OOffff
|
||||
(without regard to case). Unrecognized variable names are ignored.
|
||||
Except where noted, readline variables can take the values OOnn or OOffff
|
||||
(without regard to case). Unrecognized variable names are ignored.
|
||||
When readline reads a variable value, empty or null values, "on" (case-
|
||||
insensitive), and "1" are equivalent to OOnn. All other values are
|
||||
insensitive), and "1" are equivalent to OOnn. All other values are
|
||||
equivalent to OOffff. The variables and their default values are:
|
||||
|
||||
aaccttiivvee--rreeggiioonn--ssttaarrtt--ccoolloorr
|
||||
A string variable that controls the text color and background
|
||||
when displaying the text in the active region (see the descrip-
|
||||
tion of eennaabbllee--aaccttiivvee--rreeggiioonn below). This string must not take
|
||||
A string variable that controls the text color and background
|
||||
when displaying the text in the active region (see the descrip-
|
||||
tion of eennaabbllee--aaccttiivvee--rreeggiioonn below). This string must not take
|
||||
up any physical character positions on the display, so it should
|
||||
consist only of terminal escape sequences. It is output to the
|
||||
terminal before displaying the text in the active region. This
|
||||
variable is reset to the default value whenever the terminal
|
||||
type changes. The default value is the string that puts the
|
||||
terminal in standout mode, as obtained from the terminal's ter-
|
||||
consist only of terminal escape sequences. It is output to the
|
||||
terminal before displaying the text in the active region. This
|
||||
variable is reset to the default value whenever the terminal
|
||||
type changes. The default value is the string that puts the
|
||||
terminal in standout mode, as obtained from the terminal's ter-
|
||||
minfo description. A sample value might be "\e[01;33m".
|
||||
aaccttiivvee--rreeggiioonn--eenndd--ccoolloorr
|
||||
A string variable that "undoes" the effects of aaccttiivvee--rree--
|
||||
ggiioonn--ssttaarrtt--ccoolloorr and restores "normal" terminal display appear-
|
||||
ance after displaying text in the active region. This string
|
||||
must not take up any physical character positions on the dis-
|
||||
play, so it should consist only of terminal escape sequences.
|
||||
It is output to the terminal after displaying the text in the
|
||||
active region. This variable is reset to the default value
|
||||
whenever the terminal type changes. The default value is the
|
||||
string that restores the terminal from standout mode, as ob-
|
||||
A string variable that "undoes" the effects of aaccttiivvee--rree--
|
||||
ggiioonn--ssttaarrtt--ccoolloorr and restores "normal" terminal display appear-
|
||||
ance after displaying text in the active region. This string
|
||||
must not take up any physical character positions on the dis-
|
||||
play, so it should consist only of terminal escape sequences.
|
||||
It is output to the terminal after displaying the text in the
|
||||
active region. This variable is reset to the default value
|
||||
whenever the terminal type changes. The default value is the
|
||||
string that restores the terminal from standout mode, as ob-
|
||||
tained from the terminal's terminfo description. A sample value
|
||||
might be "\e[0m".
|
||||
bbeellll--ssttyyllee ((aauuddiibbllee))
|
||||
Controls what happens when readline wants to ring the terminal
|
||||
Controls what happens when readline wants to ring the terminal
|
||||
bell. If set to nnoonnee, readline never rings the bell. If set to
|
||||
vviissiibbllee, readline uses a visible bell if one is available. If
|
||||
vviissiibbllee, readline uses a visible bell if one is available. If
|
||||
set to aauuddiibbllee, readline attempts to ring the terminal's bell.
|
||||
bbiinndd--ttttyy--ssppeecciiaall--cchhaarrss ((OOnn))
|
||||
If set to OOnn (the default), readline attempts to bind the con-
|
||||
If set to OOnn (the default), readline attempts to bind the con-
|
||||
trol characters that are treated specially by the kernel's ter-
|
||||
minal driver to their readline equivalents. These override the
|
||||
default readline bindings described here. Type "stty -a" at a
|
||||
minal driver to their readline equivalents. These override the
|
||||
default readline bindings described here. Type "stty -a" at a
|
||||
bbaasshh prompt to see your current terminal settings, including the
|
||||
special control characters (usually cccchhaarrss).
|
||||
bblliinnkk--mmaattcchhiinngg--ppaarreenn ((OOffff))
|
||||
If set to OOnn, readline attempts to briefly move the cursor to an
|
||||
opening parenthesis when a closing parenthesis is inserted.
|
||||
ccoolloorreedd--ccoommpplleettiioonn--pprreeffiixx ((OOffff))
|
||||
If set to OOnn, when listing completions, readline displays the
|
||||
If set to OOnn, when listing completions, readline displays the
|
||||
common prefix of the set of possible completions using a differ-
|
||||
ent color. The color definitions are taken from the value of
|
||||
ent color. The color definitions are taken from the value of
|
||||
the LLSS__CCOOLLOORRSS environment variable. If there is a color defini-
|
||||
tion in $$LLSS__CCOOLLOORRSS for the custom suffix "readline-colored-com-
|
||||
pletion-prefix", readline uses this color for the common prefix
|
||||
tion in $$LLSS__CCOOLLOORRSS for the custom suffix "readline-colored-com-
|
||||
pletion-prefix", readline uses this color for the common prefix
|
||||
instead of its default.
|
||||
ccoolloorreedd--ssttaattss ((OOffff))
|
||||
If set to OOnn, readline displays possible completions using dif-
|
||||
ferent colors to indicate their file type. The color defini-
|
||||
tions are taken from the value of the LLSS__CCOOLLOORRSS environment
|
||||
If set to OOnn, readline displays possible completions using dif-
|
||||
ferent colors to indicate their file type. The color defini-
|
||||
tions are taken from the value of the LLSS__CCOOLLOORRSS environment
|
||||
variable.
|
||||
ccoommmmeenntt--bbeeggiinn (("##"))
|
||||
The string that is inserted when the readline iinnsseerrtt--ccoommmmeenntt
|
||||
The string that is inserted when the readline iinnsseerrtt--ccoommmmeenntt
|
||||
command is executed. This command is bound to MM--## in emacs mode
|
||||
and to ## in vi command mode.
|
||||
ccoommpplleettiioonn--ddiissppllaayy--wwiiddtthh ((--11))
|
||||
The number of screen columns used to display possible matches
|
||||
when performing completion. The value is ignored if it is less
|
||||
than 0 or greater than the terminal screen width. A value of 0
|
||||
will cause matches to be displayed one per line. The default
|
||||
The number of screen columns used to display possible matches
|
||||
when performing completion. The value is ignored if it is less
|
||||
than 0 or greater than the terminal screen width. A value of 0
|
||||
will cause matches to be displayed one per line. The default
|
||||
value is -1.
|
||||
ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff))
|
||||
If set to OOnn, readline performs filename matching and completion
|
||||
in a case-insensitive fashion.
|
||||
ccoommpplleettiioonn--mmaapp--ccaassee ((OOffff))
|
||||
If set to OOnn, and ccoommpplleettiioonn--iiggnnoorree--ccaassee is enabled, readline
|
||||
treats hyphens (_-) and underscores (__) as equivalent when per-
|
||||
If set to OOnn, and ccoommpplleettiioonn--iiggnnoorree--ccaassee is enabled, readline
|
||||
treats hyphens (_-) and underscores (__) as equivalent when per-
|
||||
forming case-insensitive filename matching and completion.
|
||||
ccoommpplleettiioonn--pprreeffiixx--ddiissppllaayy--lleennggtthh ((00))
|
||||
The length in characters of the common prefix of a list of pos-
|
||||
sible completions that is displayed without modification. When
|
||||
set to a value greater than zero, common prefixes longer than
|
||||
this value are replaced with an ellipsis when displaying possi-
|
||||
The length in characters of the common prefix of a list of pos-
|
||||
sible completions that is displayed without modification. When
|
||||
set to a value greater than zero, common prefixes longer than
|
||||
this value are replaced with an ellipsis when displaying possi-
|
||||
ble completions.
|
||||
ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000))
|
||||
This determines when the user is queried about viewing the num-
|
||||
ber of possible completions generated by the ppoossssiibbllee--ccoommppllee--
|
||||
ttiioonnss command. It may be set to any integer value greater than
|
||||
or equal to zero. If the number of possible completions is
|
||||
greater than or equal to the value of this variable, readline
|
||||
will ask whether or not the user wishes to view them; otherwise
|
||||
they are simply listed on the terminal. A zero value means
|
||||
This determines when the user is queried about viewing the num-
|
||||
ber of possible completions generated by the ppoossssiibbllee--ccoommppllee--
|
||||
ttiioonnss command. It may be set to any integer value greater than
|
||||
or equal to zero. If the number of possible completions is
|
||||
greater than or equal to the value of this variable, readline
|
||||
will ask whether or not the user wishes to view them; otherwise
|
||||
they are simply listed on the terminal. A zero value means
|
||||
readline should never ask; negative values are treated as zero.
|
||||
ccoonnvveerrtt--mmeettaa ((OOnn))
|
||||
If set to OOnn, readline will convert characters with the eighth
|
||||
bit set to an ASCII key sequence by stripping the eighth bit and
|
||||
prefixing an escape character (in effect, using escape as the
|
||||
_m_e_t_a _p_r_e_f_i_x). The default is _O_n, but readline will set it to
|
||||
_O_f_f if the locale contains eight-bit characters. This variable
|
||||
is dependent on the LLCC__CCTTYYPPEE locale category, and may change if
|
||||
the locale is changed.
|
||||
If set to OOnn, readline will convert characters it reads with the
|
||||
eighth bit set to an ASCII key sequence by stripping the eighth
|
||||
bit and prefixing it with an escape character (converting the
|
||||
character to have the _m_e_t_a _p_r_e_f_i_x). The default is _O_n, but
|
||||
readline will set it to _O_f_f if the locale contains characters
|
||||
whose encodings may include bytes with the eighth bit set. This
|
||||
variable is dependent on the LLCC__CCTTYYPPEE locale category, and may
|
||||
change if the locale is changed. This variable also affects key
|
||||
bindings; see the description of ffoorrccee--mmeettaa--pprreeffiixx below.
|
||||
ddiissaabbllee--ccoommpplleettiioonn ((OOffff))
|
||||
If set to OOnn, readline will inhibit word completion. Completion
|
||||
characters will be inserted into the line as if they had been
|
||||
characters will be inserted into the line as if they had been
|
||||
mapped to sseellff--iinnsseerrtt.
|
||||
eecchhoo--ccoonnttrrooll--cchhaarraacctteerrss ((OOnn))
|
||||
When set to OOnn, on operating systems that indicate they support
|
||||
When set to OOnn, on operating systems that indicate they support
|
||||
it, readline echoes a character corresponding to a signal gener-
|
||||
ated from the keyboard.
|
||||
eeddiittiinngg--mmooddee ((eemmaaccss))
|
||||
@@ -3517,29 +3535,29 @@ RREEAADDLLIINNEE
|
||||
ilar to _E_m_a_c_s or _v_i. eeddiittiinngg--mmooddee can be set to either eemmaaccss or
|
||||
vvii.
|
||||
eemmaaccss--mmooddee--ssttrriinngg ((@@))
|
||||
If the _s_h_o_w_-_m_o_d_e_-_i_n_-_p_r_o_m_p_t variable is enabled, this string is
|
||||
If the _s_h_o_w_-_m_o_d_e_-_i_n_-_p_r_o_m_p_t variable is enabled, this string is
|
||||
displayed immediately before the last line of the primary prompt
|
||||
when emacs editing mode is active. The value is expanded like a
|
||||
key binding, so the standard set of meta- and control prefixes
|
||||
and backslash escape sequences is available. Use the \1 and \2
|
||||
escapes to begin and end sequences of non-printing characters,
|
||||
which can be used to embed a terminal control sequence into the
|
||||
key binding, so the standard set of meta- and control prefixes
|
||||
and backslash escape sequences is available. Use the \1 and \2
|
||||
escapes to begin and end sequences of non-printing characters,
|
||||
which can be used to embed a terminal control sequence into the
|
||||
mode string.
|
||||
eennaabbllee--aaccttiivvee--rreeggiioonn ((OOnn))
|
||||
The _p_o_i_n_t is the current cursor position, and _m_a_r_k refers to a
|
||||
saved cursor position. The text between the point and mark is
|
||||
referred to as the _r_e_g_i_o_n. When this variable is set to _O_n,
|
||||
readline allows certain commands to designate the region as _a_c_-
|
||||
_t_i_v_e. When the region is active, readline highlights the text
|
||||
in the region using the value of the aaccttiivvee--rreeggiioonn--ssttaarrtt--ccoolloorr,
|
||||
which defaults to the string that enables the terminal's stand-
|
||||
out mode. The active region shows the text inserted by brack-
|
||||
eted-paste and any matching text found by incremental and non-
|
||||
The _p_o_i_n_t is the current cursor position, and _m_a_r_k refers to a
|
||||
saved cursor position. The text between the point and mark is
|
||||
referred to as the _r_e_g_i_o_n. When this variable is set to _O_n,
|
||||
readline allows certain commands to designate the region as _a_c_-
|
||||
_t_i_v_e. When the region is active, readline highlights the text
|
||||
in the region using the value of the aaccttiivvee--rreeggiioonn--ssttaarrtt--ccoolloorr,
|
||||
which defaults to the string that enables the terminal's stand-
|
||||
out mode. The active region shows the text inserted by brack-
|
||||
eted-paste and any matching text found by incremental and non-
|
||||
incremental history searches.
|
||||
eennaabbllee--bbrraacckkeetteedd--ppaassttee ((OOnn))
|
||||
When set to OOnn, readline configures the terminal to insert each
|
||||
paste into the editing buffer as a single string of characters,
|
||||
instead of treating each character as if it had been read from
|
||||
When set to OOnn, readline configures the terminal to insert each
|
||||
paste into the editing buffer as a single string of characters,
|
||||
instead of treating each character as if it had been read from
|
||||
the keyboard. This prevents readline from executing any editing
|
||||
commands bound to key sequences appearing in the pasted text.
|
||||
eennaabbllee--kkeeyyppaadd ((OOffff))
|
||||
@@ -3547,39 +3565,54 @@ RREEAADDLLIINNEE
|
||||
pad when it is called. Some systems need this to enable the ar-
|
||||
row keys.
|
||||
eennaabbllee--mmeettaa--kkeeyy ((OOnn))
|
||||
When set to OOnn, readline will try to enable any meta modifier
|
||||
key the terminal claims to support when it is called. On many
|
||||
terminals, the meta key is used to send eight-bit characters.
|
||||
When set to OOnn, readline will try to enable any meta modifier
|
||||
key the terminal claims to support when it is called. On many
|
||||
terminals, the Meta key is used to send eight-bit characters;
|
||||
this variable checks for the terminal capability that indicates
|
||||
the terminal can enable and disable a mode that sets the eighth
|
||||
bit of a character (0200) if the Meta key is held down when the
|
||||
character is typed (a meta character).
|
||||
ffoorrccee--mmeettaa--pprreeffiixx ((OOffff))
|
||||
If set to OOnn, readline modifies its behavior when binding key
|
||||
sequences containing \M- or Meta- (see KKeeyy BBiinnddiinnggss above) by
|
||||
converting a key sequence of the form \M-_C or Meta-_C to the two-
|
||||
character sequence EESSCC_C (adding the meta prefix). If
|
||||
ffoorrccee--mmeettaa--pprreeffiixx is set to OOffff (the default), readline uses the
|
||||
value of the ccoonnvveerrtt--mmeettaa variable to determine whether to per-
|
||||
form this conversion: if ccoonnvveerrtt--mmeettaa is OOnn, readline performs
|
||||
the conversion described above; if it is OOffff, Readline converts
|
||||
_C to a meta character by setting the eighth bit (0200).
|
||||
eexxppaanndd--ttiillddee ((OOffff))
|
||||
If set to OOnn, tilde expansion is performed when readline at-
|
||||
If set to OOnn, tilde expansion is performed when readline at-
|
||||
tempts word completion.
|
||||
hhiissttoorryy--pprreesseerrvvee--ppooiinntt ((OOffff))
|
||||
If set to OOnn, the history code attempts to place point at the
|
||||
same location on each history line retrieved with pprreevviioouuss--hhiiss--
|
||||
If set to OOnn, the history code attempts to place point at the
|
||||
same location on each history line retrieved with pprreevviioouuss--hhiiss--
|
||||
ttoorryy or nneexxtt--hhiissttoorryy.
|
||||
hhiissttoorryy--ssiizzee ((uunnsseett))
|
||||
Set the maximum number of history entries saved in the history
|
||||
list. If set to zero, any existing history entries are deleted
|
||||
Set the maximum number of history entries saved in the history
|
||||
list. If set to zero, any existing history entries are deleted
|
||||
and no new entries are saved. If set to a value less than zero,
|
||||
the number of history entries is not limited. By default, the
|
||||
number of history entries is set to the value of the HHIISSTTSSIIZZEE
|
||||
shell variable. If an attempt is made to set _h_i_s_t_o_r_y_-_s_i_z_e to a
|
||||
the number of history entries is not limited. By default, the
|
||||
number of history entries is set to the value of the HHIISSTTSSIIZZEE
|
||||
shell variable. If an attempt is made to set _h_i_s_t_o_r_y_-_s_i_z_e to a
|
||||
non-numeric value, the maximum number of history entries will be
|
||||
set to 500.
|
||||
hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff))
|
||||
When set to OOnn, makes readline use a single line for display,
|
||||
When set to OOnn, makes readline use a single line for display,
|
||||
scrolling the input horizontally on a single screen line when it
|
||||
becomes longer than the screen width rather than wrapping to a
|
||||
new line. This setting is automatically enabled for terminals
|
||||
becomes longer than the screen width rather than wrapping to a
|
||||
new line. This setting is automatically enabled for terminals
|
||||
of height 1.
|
||||
iinnppuutt--mmeettaa ((OOffff))
|
||||
If set to OOnn, readline will enable eight-bit input (that is, it
|
||||
If set to OOnn, readline will enable eight-bit input (that is, it
|
||||
will not strip the eighth bit from the characters it reads), re-
|
||||
gardless of what the terminal claims it can support. The name
|
||||
mmeettaa--ffllaagg is a synonym for this variable. The default is _O_f_f,
|
||||
but readline will set it to _O_n if the locale contains eight-bit
|
||||
characters. This variable is dependent on the LLCC__CCTTYYPPEE locale
|
||||
category, and may change if the locale is changed.
|
||||
gardless of what the terminal claims it can support. The name
|
||||
mmeettaa--ffllaagg is a synonym for this variable. The default is _O_f_f,
|
||||
but readline will set it to _O_n if the locale contains characters
|
||||
whose encodings may include bytes with the eighth bit set. This
|
||||
variable is dependent on the LLCC__CCTTYYPPEE locale category, and may
|
||||
change if the locale is changed.
|
||||
iisseeaarrcchh--tteerrmmiinnaattoorrss (("CC--[[CC--JJ"))
|
||||
The string of characters that should terminate an incremental
|
||||
search without subsequently executing the character as a com-
|
||||
@@ -3625,9 +3658,9 @@ RREEAADDLLIINNEE
|
||||
If set to OOnn, readline will display characters with the eighth
|
||||
bit set directly rather than as a meta-prefixed escape sequence.
|
||||
The default is _O_f_f, but readline will set it to _O_n if the locale
|
||||
contains eight-bit characters. This variable is dependent on
|
||||
the LLCC__CCTTYYPPEE locale category, and may change if the locale is
|
||||
changed.
|
||||
contains characters whose encodings may include bytes with the
|
||||
eighth bit set. This variable is dependent on the LLCC__CCTTYYPPEE lo-
|
||||
cale category, and may change if the locale is changed.
|
||||
ppaaggee--ccoommpplleettiioonnss ((OOnn))
|
||||
If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis-
|
||||
play a screenful of possible completions at a time.
|
||||
@@ -6945,4 +6978,4 @@ BBUUGGSS
|
||||
|
||||
There may be only one active coprocess at a time.
|
||||
|
||||
GNU Bash 5.3 2024 August 16 _B_A_S_H(1)
|
||||
GNU Bash 5.3 2024 September 5 _B_A_S_H(1)
|
||||
|
||||
+7
-5
@@ -5,14 +5,14 @@
|
||||
.\" Case Western Reserve University
|
||||
.\" chet.ramey@case.edu
|
||||
.\"
|
||||
.\" Last Change: Fri Aug 23 09:09:35 EDT 2024
|
||||
.\" Last Change: Thu Sep 5 15:41:56 EDT 2024
|
||||
.\"
|
||||
.\" 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 "2024 August 23" "GNU Bash 5.3"
|
||||
.TH BASH 1 "2024 September 5" "GNU Bash 5.3"
|
||||
.\"
|
||||
.ie \n(.g \{\
|
||||
.ds ' \(aq
|
||||
@@ -1465,8 +1465,7 @@ expand to nothing (i.e., they are removed).
|
||||
Expands to the number of positional parameters in decimal.
|
||||
.TP
|
||||
.B ?
|
||||
Expands to the exit status of the most recently executed foreground
|
||||
command.
|
||||
Expands to the exit status of the most recently executed command.
|
||||
.TP
|
||||
.B \-
|
||||
Expands to the current option flags as specified upon invocation,
|
||||
@@ -5739,7 +5738,10 @@ Normally,
|
||||
.B bash
|
||||
waits until it is about to print a prompt before reporting
|
||||
changes in a job's status so as to not interrupt
|
||||
any other output. If the
|
||||
any other output,
|
||||
though it will notify of changes in a job's status after a command in
|
||||
a list completes, before executing the next command.
|
||||
If the
|
||||
.B \-b
|
||||
option to the
|
||||
.B set
|
||||
|
||||
+325
-274
@@ -1,9 +1,9 @@
|
||||
This is bash.info, produced by makeinfo version 7.1 from bashref.texi.
|
||||
|
||||
This text is a brief description of the features that are present in the
|
||||
Bash shell (version 5.3, 16 August 2024).
|
||||
Bash shell (version 5.3, 5 September 2024).
|
||||
|
||||
This is Edition 5.3, last updated 16 August 2024, of ‘The GNU Bash
|
||||
This is Edition 5.3, last updated 5 September 2024, of ‘The GNU Bash
|
||||
Reference Manual’, for ‘Bash’, Version 5.3.
|
||||
|
||||
Copyright © 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, 16 August 2024). The Bash home page is
|
||||
Bash shell (version 5.3, 5 September 2024). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 5.3, last updated 16 August 2024, of ‘The GNU Bash
|
||||
This is Edition 5.3, last updated 5 September 2024, of ‘The GNU Bash
|
||||
Reference Manual’, for ‘Bash’, Version 5.3.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -903,11 +903,11 @@ File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev:
|
||||
|
||||
Each clause must be terminated with ‘;;’, ‘;&’, or ‘;;&’. The WORD
|
||||
undergoes tilde expansion, parameter expansion, command
|
||||
substitution, arithmetic expansion, and quote removal (*note Shell
|
||||
Parameter Expansion::) before matching is attempted. Each PATTERN
|
||||
undergoes tilde expansion, parameter expansion, command
|
||||
substitution, arithmetic expansion, process substitution, and quote
|
||||
removal.
|
||||
substitution, process substitution, arithmetic expansion, and quote
|
||||
removal (*note Shell Parameter Expansion::) before the shell
|
||||
attempts to match the pattern. Each PATTERN undergoes tilde
|
||||
expansion, parameter expansion, command substitution, arithmetic
|
||||
expansion, process substitution, and quote removal.
|
||||
|
||||
There may be an arbitrary number of ‘case’ clauses, each terminated
|
||||
by a ‘;;’, ‘;&’, or ‘;;&’. The first pattern that matches
|
||||
@@ -1555,10 +1555,10 @@ only be referenced; assignment to them is not allowed.
|
||||
‘*’
|
||||
($*) Expands to the positional parameters, starting from one. When
|
||||
the expansion is not within double quotes, each positional
|
||||
parameter expands to a separate word. In contexts where it is
|
||||
performed, those words are subject to further word splitting and
|
||||
filename expansion. When the expansion occurs within double
|
||||
quotes, it expands to a single word with the value of each
|
||||
parameter expands to a separate word. In contexts where these
|
||||
expansions are performed, those words are subject to further word
|
||||
splitting and filename expansion. When the expansion occurs within
|
||||
double quotes, it expands to a single word with the value of each
|
||||
parameter separated by the first character of the ‘IFS’ special
|
||||
variable. That is, ‘"$*"’ is equivalent to ‘"$1C$2C..."’, where C
|
||||
is the first character of the value of the ‘IFS’ variable. If
|
||||
@@ -1587,7 +1587,7 @@ only be referenced; assignment to them is not allowed.
|
||||
|
||||
‘?’
|
||||
($?) Expands to the exit status of the most recently executed
|
||||
foreground command.
|
||||
command.
|
||||
|
||||
‘-’
|
||||
($-, a hyphen.) Expands to the current option flags as specified
|
||||
@@ -7356,102 +7356,113 @@ startup files.
|
||||
is stopped is 'Stopped(SIGNAME)', where SIGNAME is, for example,
|
||||
‘SIGTSTP’.
|
||||
|
||||
6. Alias expansion is always enabled, even in non-interactive shells.
|
||||
6. If the shell is interactive, Bash does not perform job
|
||||
notifications between executing commands in lists separated by ‘;’
|
||||
or newline. Non-interactive shells print status messages after a
|
||||
foreground job in a list completes.
|
||||
|
||||
7. Reserved words appearing in a context where reserved words are
|
||||
7. If the shell is interactive, Bash waits until the next prompt
|
||||
before printing the status of a background job that changes status
|
||||
or a foreground job that terminates due to a signal.
|
||||
Non-interactive shells print status messages after a foreground job
|
||||
completes.
|
||||
|
||||
8. Alias expansion is always enabled, even in non-interactive shells.
|
||||
|
||||
9. Reserved words appearing in a context where reserved words are
|
||||
recognized do not undergo alias expansion.
|
||||
|
||||
8. Alias expansion is performed when initially parsing a command
|
||||
10. Alias expansion is performed when initially parsing a command
|
||||
substitution. The default mode generally defers it, when enabled,
|
||||
until the command substitution is executed. This means that
|
||||
command substitution will not expand aliases that are defined after
|
||||
the command substitution is initially parsed (e.g., as part of a
|
||||
function definition).
|
||||
|
||||
9. The POSIX ‘PS1’ and ‘PS2’ expansions of ‘!’ to the history number
|
||||
11. The POSIX ‘PS1’ and ‘PS2’ expansions of ‘!’ to the history number
|
||||
and ‘!!’ to ‘!’ are enabled, and parameter expansion is performed
|
||||
on the values of ‘PS1’ and ‘PS2’ regardless of the setting of the
|
||||
‘promptvars’ option.
|
||||
|
||||
10. The POSIX startup files are executed (‘$ENV’) rather than the
|
||||
12. The POSIX startup files are executed (‘$ENV’) rather than the
|
||||
normal Bash files.
|
||||
|
||||
11. Tilde expansion is only performed on assignments preceding a
|
||||
13. Tilde expansion is only performed on assignments preceding a
|
||||
command name, rather than on all assignment statements on the line.
|
||||
|
||||
12. The default history file is ‘~/.sh_history’ (this is the default
|
||||
14. The default history file is ‘~/.sh_history’ (this is the default
|
||||
value the shell assigns to ‘$HISTFILE’).
|
||||
|
||||
13. Redirection operators do not perform filename expansion on the
|
||||
15. Redirection operators do not perform filename expansion on the
|
||||
word in the redirection unless the shell is interactive.
|
||||
|
||||
14. Redirection operators do not perform word splitting on the word in
|
||||
16. Redirection operators do not perform word splitting on the word in
|
||||
the redirection.
|
||||
|
||||
15. Function names must be valid shell ‘name’s. That is, they may not
|
||||
17. Function names must be valid shell ‘name’s. That is, they may not
|
||||
contain characters other than letters, digits, and underscores, and
|
||||
may not start with a digit. Declaring a function with an invalid
|
||||
name causes a fatal syntax error in non-interactive shells.
|
||||
|
||||
16. Function names may not be the same as one of the POSIX special
|
||||
18. Function names may not be the same as one of the POSIX special
|
||||
builtins.
|
||||
|
||||
17. Even if a shell function whose name contains a slash was defined
|
||||
19. Even if a shell function whose name contains a slash was defined
|
||||
before entering POSIX mode, the shell will not execute a function
|
||||
whose name contains one or more slashes.
|
||||
|
||||
18. POSIX special builtins are found before shell functions during
|
||||
20. POSIX special builtins are found before shell functions during
|
||||
command lookup, including output printed by the ‘type’ and
|
||||
‘command’ builtins.
|
||||
|
||||
19. When printing shell function definitions (e.g., by ‘type’), Bash
|
||||
21. When printing shell function definitions (e.g., by ‘type’), Bash
|
||||
does not print the ‘function’ keyword.
|
||||
|
||||
20. Literal tildes that appear as the first character in elements of
|
||||
22. Literal tildes that appear as the first character in elements of
|
||||
the ‘PATH’ variable are not expanded as described above under *note
|
||||
Tilde Expansion::.
|
||||
|
||||
21. The ‘time’ reserved word may be used by itself as a command. When
|
||||
23. The ‘time’ reserved word may be used by itself as a command. When
|
||||
used in this way, it displays timing statistics for the shell and
|
||||
its completed children. The ‘TIMEFORMAT’ variable controls the
|
||||
format of the timing information.
|
||||
|
||||
22. When parsing and expanding a ${...} expansion that appears within
|
||||
24. When parsing and expanding a ${...} expansion that appears within
|
||||
double quotes, single quotes are no longer special and cannot be
|
||||
used to quote a closing brace or other special character, unless
|
||||
the operator is one of those defined to perform pattern removal.
|
||||
In this case, they do not have to appear as matched pairs.
|
||||
|
||||
23. The parser does not recognize ‘time’ as a reserved word if the
|
||||
25. The parser does not recognize ‘time’ as a reserved word if the
|
||||
next token begins with a ‘-’.
|
||||
|
||||
24. The ‘!’ character does not introduce history expansion within a
|
||||
26. The ‘!’ character does not introduce history expansion within a
|
||||
double-quoted string, even if the ‘histexpand’ option is enabled.
|
||||
|
||||
25. If a POSIX special builtin returns an error status, a
|
||||
27. If a POSIX special builtin returns an error status, a
|
||||
non-interactive shell exits. The fatal errors are those listed in
|
||||
the POSIX standard, and include things like passing incorrect
|
||||
options, redirection errors, variable assignment errors for
|
||||
assignments preceding the command name, and so on.
|
||||
|
||||
26. The ‘unset’ builtin with the ‘-v’ option specified returns a fatal
|
||||
28. The ‘unset’ builtin with the ‘-v’ option specified returns a fatal
|
||||
error if it attempts to unset a ‘readonly’ or ‘non-unsettable’
|
||||
variable, or encounters a variable name argument that is an invalid
|
||||
identifier, which causes a non-interactive shell to exit.
|
||||
|
||||
27. When asked to unset a variable that appears in an assignment
|
||||
29. When asked to unset a variable that appears in an assignment
|
||||
statement preceding the command, the ‘unset’ builtin attempts to
|
||||
unset a variable of the same name in the current or previous scope
|
||||
as well. This implements the required "if an assigned variable is
|
||||
further modified by the utility, the modifications made by the
|
||||
utility shall persist" behavior.
|
||||
|
||||
28. A non-interactive shell exits with an error status if a variable
|
||||
30. A non-interactive shell exits with an error status if a variable
|
||||
assignment error occurs when no command name follows the assignment
|
||||
statements. A variable assignment error occurs, for example, when
|
||||
trying to assign a value to a readonly variable.
|
||||
|
||||
29. A non-interactive shell exits with an error status if a variable
|
||||
31. A non-interactive shell exits with an error status if a variable
|
||||
assignment error occurs in an assignment statement preceding a
|
||||
special builtin, but not with any other simple command. For any
|
||||
other simple command, the shell aborts execution of that command,
|
||||
@@ -7459,166 +7470,166 @@ startup files.
|
||||
perform any further processing of the command in which the error
|
||||
occurred").
|
||||
|
||||
30. A non-interactive shell exits with an error status if the
|
||||
32. A non-interactive shell exits with an error status if the
|
||||
iteration variable in a ‘for’ statement or the selection variable
|
||||
in a ‘select’ statement is a readonly variable or has an invalid
|
||||
name.
|
||||
|
||||
31. Non-interactive shells exit if FILENAME in ‘.’ FILENAME is not
|
||||
33. Non-interactive shells exit if FILENAME in ‘.’ FILENAME is not
|
||||
found.
|
||||
|
||||
32. Non-interactive shells exit if a syntax error in an arithmetic
|
||||
34. Non-interactive shells exit if a syntax error in an arithmetic
|
||||
expansion results in an invalid expression.
|
||||
|
||||
33. Non-interactive shells exit if a parameter expansion error occurs.
|
||||
35. Non-interactive shells exit if a parameter expansion error occurs.
|
||||
|
||||
34. Non-interactive shells exit if there is a syntax error in a script
|
||||
36. Non-interactive shells exit if there is a syntax error in a script
|
||||
read with the ‘.’ or ‘source’ builtins, or in a string processed by
|
||||
the ‘eval’ builtin.
|
||||
|
||||
35. While variable indirection is available, it may not be applied to
|
||||
37. While variable indirection is available, it may not be applied to
|
||||
the ‘#’ and ‘?’ special parameters.
|
||||
|
||||
36. Expanding the ‘*’ special parameter in a pattern context where the
|
||||
38. Expanding the ‘*’ special parameter in a pattern context where the
|
||||
expansion is double-quoted does not treat the ‘$*’ as if it were
|
||||
double-quoted.
|
||||
|
||||
37. Assignment statements preceding POSIX special builtins persist in
|
||||
39. Assignment statements preceding POSIX special builtins persist in
|
||||
the shell environment after the builtin completes.
|
||||
|
||||
38. The ‘command’ builtin does not prevent builtins that take
|
||||
40. The ‘command’ builtin does not prevent builtins that take
|
||||
assignment statements as arguments from expanding them as
|
||||
assignment statements; when not in POSIX mode, assignment builtins
|
||||
lose their assignment statement expansion properties when preceded
|
||||
by ‘command’.
|
||||
|
||||
39. The ‘bg’ builtin uses the required format to describe each job
|
||||
41. The ‘bg’ builtin uses the required format to describe each job
|
||||
placed in the background, which does not include an indication of
|
||||
whether the job is the current or previous job.
|
||||
|
||||
40. The output of ‘kill -l’ prints all the signal names on a single
|
||||
42. The output of ‘kill -l’ prints all the signal names on a single
|
||||
line, separated by spaces, without the ‘SIG’ prefix.
|
||||
|
||||
41. The ‘kill’ builtin does not accept signal names with a ‘SIG’
|
||||
43. The ‘kill’ builtin does not accept signal names with a ‘SIG’
|
||||
prefix.
|
||||
|
||||
42. The ‘export’ and ‘readonly’ builtin commands display their output
|
||||
44. The ‘export’ and ‘readonly’ builtin commands display their output
|
||||
in the format required by POSIX.
|
||||
|
||||
43. If the ‘export’ and ‘readonly’ builtin commands get an argument
|
||||
45. If the ‘export’ and ‘readonly’ builtin commands get an argument
|
||||
that is not a valid identifier, and they are not operating on shell
|
||||
functions, they return an error. This will cause a non-interactive
|
||||
shell to exit because these are special builtins.
|
||||
|
||||
44. The ‘trap’ builtin displays signal names without the leading
|
||||
46. The ‘trap’ builtin displays signal names without the leading
|
||||
‘SIG’.
|
||||
|
||||
45. The ‘trap’ builtin doesn't check the first argument for a possible
|
||||
47. The ‘trap’ builtin doesn't check the first argument for a possible
|
||||
signal specification and revert the signal handling to the original
|
||||
disposition if it is, unless that argument consists solely of
|
||||
digits and is a valid signal number. If users want to reset the
|
||||
handler for a given signal to the original disposition, they should
|
||||
use ‘-’ as the first argument.
|
||||
|
||||
46. ‘trap -p’ without arguments displays signals whose dispositions
|
||||
48. ‘trap -p’ without arguments displays signals whose dispositions
|
||||
are set to SIG_DFL and those that were ignored when the shell
|
||||
started, not just trapped signals.
|
||||
|
||||
47. The ‘.’ and ‘source’ builtins do not search the current directory
|
||||
49. The ‘.’ and ‘source’ builtins do not search the current directory
|
||||
for the filename argument if it is not found by searching ‘PATH’.
|
||||
|
||||
48. Enabling POSIX mode has the effect of setting the
|
||||
50. Enabling POSIX mode has the effect of setting the
|
||||
‘inherit_errexit’ option, so subshells spawned to execute command
|
||||
substitutions inherit the value of the ‘-e’ option from the parent
|
||||
shell. When the ‘inherit_errexit’ option is not enabled, Bash
|
||||
clears the ‘-e’ option in such subshells.
|
||||
|
||||
49. Enabling POSIX mode has the effect of setting the ‘shift_verbose’
|
||||
51. Enabling POSIX mode has the effect of setting the ‘shift_verbose’
|
||||
option, so numeric arguments to ‘shift’ that exceed the number of
|
||||
positional parameters will result in an error message.
|
||||
|
||||
50. When the ‘alias’ builtin displays alias definitions, it does not
|
||||
52. When the ‘alias’ builtin displays alias definitions, it does not
|
||||
display them with a leading ‘alias ’ unless the ‘-p’ option is
|
||||
supplied.
|
||||
|
||||
51. When the ‘set’ builtin is invoked without options, it does not
|
||||
53. When the ‘set’ builtin is invoked without options, it does not
|
||||
display shell function names and definitions.
|
||||
|
||||
52. When the ‘set’ builtin is invoked without options, it displays
|
||||
54. When the ‘set’ builtin is invoked without options, it displays
|
||||
variable values without quotes, unless they contain shell
|
||||
metacharacters, even if the result contains nonprinting characters.
|
||||
|
||||
53. When the ‘cd’ builtin is invoked in logical mode, and the pathname
|
||||
55. When the ‘cd’ builtin is invoked in logical mode, and the pathname
|
||||
constructed from ‘$PWD’ and the directory name supplied as an
|
||||
argument does not refer to an existing directory, ‘cd’ will fail
|
||||
instead of falling back to physical mode.
|
||||
|
||||
54. When the ‘cd’ builtin cannot change a directory because the length
|
||||
56. When the ‘cd’ builtin cannot change a directory because the length
|
||||
of the pathname constructed from ‘$PWD’ and the directory name
|
||||
supplied as an argument exceeds ‘PATH_MAX’ when canonicalized, ‘cd’
|
||||
will attempt to use the supplied directory name.
|
||||
|
||||
55. The ‘pwd’ builtin verifies that the value it prints is the same as
|
||||
57. The ‘pwd’ builtin verifies that the value it prints is the same as
|
||||
the current directory, even if it is not asked to check the file
|
||||
system with the ‘-P’ option.
|
||||
|
||||
56. When listing the history, the ‘fc’ builtin does not include an
|
||||
58. When listing the history, the ‘fc’ builtin does not include an
|
||||
indication of whether or not a history entry has been modified.
|
||||
|
||||
57. The default editor used by ‘fc’ is ‘ed’.
|
||||
59. The default editor used by ‘fc’ is ‘ed’.
|
||||
|
||||
58. ‘fc’ treats extra arguments as an error instead of ignoring them.
|
||||
60. ‘fc’ treats extra arguments as an error instead of ignoring them.
|
||||
|
||||
59. If there are too many arguments supplied to ‘fc -s’, ‘fc’ prints
|
||||
61. If there are too many arguments supplied to ‘fc -s’, ‘fc’ prints
|
||||
an error message and returns failure.
|
||||
|
||||
60. The ‘type’ and ‘command’ builtins will not report a non-executable
|
||||
62. The ‘type’ and ‘command’ builtins will not report a non-executable
|
||||
file as having been found, though the shell will attempt to execute
|
||||
such a file if it is the only so-named file found in ‘$PATH’.
|
||||
|
||||
61. The ‘vi’ editing mode will invoke the ‘vi’ editor directly when
|
||||
63. The ‘vi’ editing mode will invoke the ‘vi’ editor directly when
|
||||
the ‘v’ command is run, instead of checking ‘$VISUAL’ and
|
||||
‘$EDITOR’.
|
||||
|
||||
62. When the ‘xpg_echo’ option is enabled, Bash does not attempt to
|
||||
64. When the ‘xpg_echo’ option is enabled, Bash does not attempt to
|
||||
interpret any arguments to ‘echo’ as options. Each argument is
|
||||
displayed, after escape characters are converted.
|
||||
|
||||
63. The ‘ulimit’ builtin uses a block size of 512 bytes for the ‘-c’
|
||||
65. The ‘ulimit’ builtin uses a block size of 512 bytes for the ‘-c’
|
||||
and ‘-f’ options.
|
||||
|
||||
64. The arrival of ‘SIGCHLD’ when a trap is set on ‘SIGCHLD’ does not
|
||||
66. The arrival of ‘SIGCHLD’ when a trap is set on ‘SIGCHLD’ does not
|
||||
interrupt the ‘wait’ builtin and cause it to return immediately.
|
||||
The trap command is run once for each child that exits.
|
||||
|
||||
65. The ‘read’ builtin may be interrupted by a signal for which a trap
|
||||
67. The ‘read’ builtin may be interrupted by a signal for which a trap
|
||||
has been set. If Bash receives a trapped signal while executing
|
||||
‘read’, the trap handler executes and ‘read’ returns an exit status
|
||||
greater than 128.
|
||||
|
||||
66. The ‘printf’ builtin uses ‘double’ (via ‘strtod’) to convert
|
||||
68. The ‘printf’ builtin uses ‘double’ (via ‘strtod’) to convert
|
||||
arguments corresponding to floating point conversion specifiers,
|
||||
instead of ‘long double’ if it's available. The ‘L’ length
|
||||
modifier forces ‘printf’ to use ‘long double’ if it's available.
|
||||
|
||||
67. Bash removes an exited background process's status from the list
|
||||
69. Bash removes an exited background process's status from the list
|
||||
of such statuses after the ‘wait’ builtin is used to obtain it.
|
||||
|
||||
68. A double quote character (‘"’) is treated specially when it
|
||||
70. A double quote character (‘"’) is treated specially when it
|
||||
appears in a backquoted command substitution in the body of a
|
||||
here-document that undergoes expansion. That means, for example,
|
||||
that a backslash preceding a double quote character will escape it
|
||||
and the backslash will be removed.
|
||||
|
||||
69. The ‘test’ builtin compares strings using the current locale when
|
||||
71. The ‘test’ builtin compares strings using the current locale when
|
||||
processing the ‘<’ and ‘>’ binary operators.
|
||||
|
||||
70. The ‘test’ builtin's ‘-t’ unary primary requires an argument.
|
||||
72. The ‘test’ builtin's ‘-t’ unary primary requires an argument.
|
||||
Historical versions of ‘test’ made the argument optional in certain
|
||||
cases, and Bash attempts to accommodate those for backwards
|
||||
compatibility.
|
||||
|
||||
71. Command substitutions don't set the ‘?’ special parameter. The
|
||||
73. Command substitutions don't set the ‘?’ special parameter. The
|
||||
exit status of a simple command without a command word is still the
|
||||
exit status of the last command substitution that occurred while
|
||||
evaluating the variable assignments and redirections in that
|
||||
@@ -7804,6 +7815,9 @@ required for bash-5.1 and later versions.
|
||||
as bindable command names, and displays any key sequences
|
||||
bound to those commands, instead of treating the arguments as
|
||||
key sequences to bind.
|
||||
• Interactive shells will notify the user of completed jobs
|
||||
while sourcing a script. Newer versions defer notification
|
||||
until script execution completes.
|
||||
|
||||
|
||||
File: bash.info, Node: Job Control, Next: Command Line Editing, Prev: Bash Features, Up: Top
|
||||
@@ -7896,10 +7910,12 @@ equivalent to ‘bg %1’
|
||||
|
||||
The shell learns immediately whenever a job changes state. Normally,
|
||||
Bash waits until it is about to print a prompt before reporting changes
|
||||
in a job's status so as to not interrupt any other output. If the ‘-b’
|
||||
option to the ‘set’ builtin is enabled, Bash reports such changes
|
||||
immediately (*note The Set Builtin::). Any trap on ‘SIGCHLD’ is
|
||||
executed for each child process that exits.
|
||||
in a job's status so as to not interrupt any other output, though it
|
||||
will notify of changes in a job's status after a command in a list
|
||||
completes, before executing the next command. If the ‘-b’ option to the
|
||||
‘set’ builtin is enabled, Bash reports such changes immediately (*note
|
||||
The Set Builtin::). Any trap on ‘SIGCHLD’ is executed for each child
|
||||
process that exits.
|
||||
|
||||
If an attempt to exit Bash is made while jobs are stopped, (or
|
||||
running, if the ‘checkjobs’ option is enabled - see *note The Shopt
|
||||
@@ -8120,20 +8136,29 @@ produced when the <k> key is pressed while the Control key is depressed.
|
||||
|
||||
The text ‘M-k’ is read as 'Meta-K' and describes the character
|
||||
produced when the Meta key (if you have one) is depressed, and the <k>
|
||||
key is pressed. The Meta key is labeled <ALT> on many keyboards. On
|
||||
keyboards with two keys labeled <ALT> (usually to either side of the
|
||||
space bar), the <ALT> on the left side is generally set to work as a
|
||||
Meta key. The <ALT> key on the right may also be configured to work as
|
||||
a Meta key or may be configured as some other modifier, such as a
|
||||
Compose key for typing accented characters.
|
||||
key is pressed (a “meta character”). The Meta key is labeled <ALT> on
|
||||
many keyboards. On keyboards with two keys labeled <ALT> (usually to
|
||||
either side of the space bar), the <ALT> on the left side is generally
|
||||
set to work as a Meta key. The <ALT> key on the right may also be
|
||||
configured to work as a Meta key or may be configured as some other
|
||||
modifier, such as a Compose key for typing accented characters.
|
||||
|
||||
On some keyboards, the Meta key modifier produces meta characters
|
||||
with the eighth bit (0200) set (you can use the ‘enable-meta-key’
|
||||
variable to control whether or not it does this, if the keyboard allows
|
||||
it). On many others, the terminal or terminal emulator converts the
|
||||
metafied key to a key sequence beginning with <ESC> as described in the
|
||||
next paragraph.
|
||||
|
||||
If you do not have a Meta or <ALT> key, or another key working as a
|
||||
Meta key, the identical keystroke can be generated by typing <ESC>
|
||||
_first_, and then typing <k>. Either process is known as “metafying”
|
||||
the <k> key.
|
||||
Meta key, you can generally achieve the latter effect by typing <ESC>
|
||||
_first_, and then typing <k>. The <ESC> character is known as the “meta
|
||||
prefix”).
|
||||
|
||||
Either process is known as “metafying” the <k> key.
|
||||
|
||||
The text ‘M-C-k’ is read as 'Meta-Control-k' and describes the
|
||||
character produced by “metafying” ‘C-k’.
|
||||
character produced by metafying ‘C-k’.
|
||||
|
||||
In addition, several keys have their own names. Specifically, <DEL>,
|
||||
<ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves when seen
|
||||
@@ -8522,14 +8547,16 @@ Variable Settings
|
||||
limit is ‘100’.
|
||||
|
||||
‘convert-meta’
|
||||
If set to ‘on’, Readline will convert characters with the
|
||||
eighth bit set to an ASCII key sequence by stripping the
|
||||
If set to ‘on’, Readline will convert characters it reads with
|
||||
the eighth bit set to an ASCII key sequence by stripping the
|
||||
eighth bit and prefixing an <ESC> character, converting them
|
||||
to a meta-prefixed key sequence. The default value is ‘on’,
|
||||
but will be set to ‘off’ if the locale is one that contains
|
||||
eight-bit characters. This variable is dependent on the
|
||||
‘LC_CTYPE’ locale category, and may change if the locale is
|
||||
changed.
|
||||
but Readline will set it to ‘off’ if the locale contains
|
||||
characters whose encodings may include bytes with the eighth
|
||||
bit set. This variable is dependent on the ‘LC_CTYPE’ locale
|
||||
category, and may change if the locale is changed. This
|
||||
variable also affects key bindings; see the description of
|
||||
‘force-meta-prefix’ below.
|
||||
|
||||
‘disable-completion’
|
||||
If set to ‘On’, Readline will inhibit word completion.
|
||||
@@ -8587,13 +8614,30 @@ Variable Settings
|
||||
‘enable-meta-key’
|
||||
When set to ‘on’, Readline will try to enable any meta
|
||||
modifier key the terminal claims to support when it is called.
|
||||
On many terminals, the meta key is used to send eight-bit
|
||||
characters. The default is ‘on’.
|
||||
On many terminals, the Meta key is used to send eight-bit
|
||||
characters; this variable checks for the terminal capability
|
||||
that indicates the terminal can enable and disable a mode that
|
||||
sets the eighth bit of a character (0200) if the Meta key is
|
||||
held down when the character is typed (a meta character). The
|
||||
default is ‘on’.
|
||||
|
||||
‘expand-tilde’
|
||||
If set to ‘on’, tilde expansion is performed when Readline
|
||||
attempts word completion. The default is ‘off’.
|
||||
|
||||
‘force-meta-prefix’
|
||||
If set to ‘on’, Readline modifies its behavior when binding
|
||||
key sequences containing ‘\M-’ or ‘Meta-’ (see ‘Key Bindings’
|
||||
in *note Readline Init File Syntax::) by converting a key
|
||||
sequence of the form ‘\M-’C or ‘Meta-’C to the two-character
|
||||
sequence ‘ESC’C (adding the meta prefix). If
|
||||
‘force-meta-prefix’ is set to ‘off’ (the default), Readline
|
||||
uses the value of the ‘convert-meta’ variable to determine
|
||||
whether to perform this conversion: if ‘convert-meta’ is ‘on’,
|
||||
Readline performs the conversion described above; if it is
|
||||
‘off’, Readline converts C to a meta character by setting the
|
||||
eighth bit (0200). The default is ‘off’.
|
||||
|
||||
‘history-preserve-point’
|
||||
If set to ‘on’, the history code attempts to place the point
|
||||
(the current cursor position) at the same location on each
|
||||
@@ -8623,10 +8667,11 @@ Variable Settings
|
||||
not clear the eighth bit in the characters it reads),
|
||||
regardless of what the terminal claims it can support. The
|
||||
default value is ‘off’, but Readline will set it to ‘on’ if
|
||||
the locale contains eight-bit characters. The name
|
||||
‘meta-flag’ is a synonym for this variable. This variable is
|
||||
dependent on the ‘LC_CTYPE’ locale category, and may change if
|
||||
the locale is changed.
|
||||
the locale contains characters whose encodings may include
|
||||
bytes with the eighth bit set. The name ‘meta-flag’ is a
|
||||
synonym for this variable. This variable is dependent on the
|
||||
‘LC_CTYPE’ locale category, and may change if the locale is
|
||||
changed.
|
||||
|
||||
‘isearch-terminators’
|
||||
The string of characters that should terminate an incremental
|
||||
@@ -8691,9 +8736,10 @@ Variable Settings
|
||||
If set to ‘on’, Readline will display characters with the
|
||||
eighth bit set directly rather than as a meta-prefixed escape
|
||||
sequence. The default is ‘off’, but Readline will set it to
|
||||
‘on’ if the locale contains eight-bit characters. This
|
||||
variable is dependent on the ‘LC_CTYPE’ locale category, and
|
||||
may change if the locale is changed.
|
||||
‘on’ if the locale contains characters whose encodings may
|
||||
include bytes with the eighth bit set. This variable is
|
||||
dependent on the ‘LC_CTYPE’ locale category, and may change if
|
||||
the locale is changed.
|
||||
|
||||
‘page-completions’
|
||||
If set to ‘on’, Readline uses an internal ‘more’-like pager to
|
||||
@@ -8839,7 +8885,10 @@ Key Bindings
|
||||
‘\C-’
|
||||
control prefix
|
||||
‘\M-’
|
||||
meta prefix
|
||||
adding the meta prefix or converting the following character
|
||||
to a meta character, as described above under
|
||||
‘force-meta-prefix’ (see ‘Variable Settings’ in *note Readline
|
||||
Init File Syntax::).
|
||||
‘\e’
|
||||
an escape character
|
||||
‘\\’
|
||||
@@ -12474,29 +12523,31 @@ D.3 Parameter and Variable Index
|
||||
* COPROC: Bash Variables. (line 278)
|
||||
* DIRSTACK: Bash Variables. (line 282)
|
||||
* disable-completion: Readline Init File Syntax.
|
||||
(line 151)
|
||||
(line 153)
|
||||
* echo-control-characters: Readline Init File Syntax.
|
||||
(line 156)
|
||||
(line 158)
|
||||
* editing-mode: Readline Init File Syntax.
|
||||
(line 161)
|
||||
(line 163)
|
||||
* EMACS: Bash Variables. (line 292)
|
||||
* emacs-mode-string: Readline Init File Syntax.
|
||||
(line 167)
|
||||
(line 169)
|
||||
* enable-active-region: Readline Init File Syntax.
|
||||
(line 177)
|
||||
(line 179)
|
||||
* enable-bracketed-paste: Readline Init File Syntax.
|
||||
(line 190)
|
||||
(line 192)
|
||||
* enable-keypad: Readline Init File Syntax.
|
||||
(line 199)
|
||||
(line 201)
|
||||
* ENV: Bash Variables. (line 297)
|
||||
* EPOCHREALTIME: Bash Variables. (line 302)
|
||||
* EPOCHSECONDS: Bash Variables. (line 310)
|
||||
* EUID: Bash Variables. (line 317)
|
||||
* EXECIGNORE: Bash Variables. (line 321)
|
||||
* expand-tilde: Readline Init File Syntax.
|
||||
(line 210)
|
||||
(line 216)
|
||||
* FCEDIT: Bash Variables. (line 334)
|
||||
* FIGNORE: Bash Variables. (line 338)
|
||||
* force-meta-prefix: Readline Init File Syntax.
|
||||
(line 220)
|
||||
* FUNCNAME: Bash Variables. (line 344)
|
||||
* FUNCNEST: Bash Variables. (line 361)
|
||||
* GLOBIGNORE: Bash Variables. (line 366)
|
||||
@@ -12509,15 +12560,15 @@ D.3 Parameter and Variable Index
|
||||
* HISTFILESIZE: Bash Variables. (line 456)
|
||||
* HISTIGNORE: Bash Variables. (line 467)
|
||||
* history-preserve-point: Readline Init File Syntax.
|
||||
(line 214)
|
||||
(line 233)
|
||||
* history-size: Readline Init File Syntax.
|
||||
(line 220)
|
||||
(line 239)
|
||||
* HISTSIZE: Bash Variables. (line 489)
|
||||
* HISTTIMEFORMAT: Bash Variables. (line 496)
|
||||
* HOME: Bourne Shell Variables.
|
||||
(line 13)
|
||||
* horizontal-scroll-mode: Readline Init File Syntax.
|
||||
(line 229)
|
||||
(line 248)
|
||||
* HOSTFILE: Bash Variables. (line 505)
|
||||
* HOSTNAME: Bash Variables. (line 516)
|
||||
* HOSTTYPE: Bash Variables. (line 519)
|
||||
@@ -12525,13 +12576,13 @@ D.3 Parameter and Variable Index
|
||||
(line 18)
|
||||
* IGNOREEOF: Bash Variables. (line 522)
|
||||
* input-meta: Readline Init File Syntax.
|
||||
(line 238)
|
||||
(line 257)
|
||||
* INPUTRC: Bash Variables. (line 532)
|
||||
* INSIDE_EMACS: Bash Variables. (line 536)
|
||||
* isearch-terminators: Readline Init File Syntax.
|
||||
(line 248)
|
||||
(line 268)
|
||||
* keymap: Readline Init File Syntax.
|
||||
(line 255)
|
||||
(line 275)
|
||||
* LANG: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
* LANG <1>: Bash Variables. (line 542)
|
||||
@@ -12553,15 +12604,15 @@ D.3 Parameter and Variable Index
|
||||
(line 27)
|
||||
* MAPFILE: Bash Variables. (line 597)
|
||||
* mark-modified-lines: Readline Init File Syntax.
|
||||
(line 285)
|
||||
(line 305)
|
||||
* mark-symlinked-directories: Readline Init File Syntax.
|
||||
(line 290)
|
||||
(line 310)
|
||||
* match-hidden-files: Readline Init File Syntax.
|
||||
(line 295)
|
||||
(line 315)
|
||||
* menu-complete-display-prefix: Readline Init File Syntax.
|
||||
(line 302)
|
||||
(line 322)
|
||||
* meta-flag: Readline Init File Syntax.
|
||||
(line 238)
|
||||
(line 257)
|
||||
* OLDPWD: Bash Variables. (line 601)
|
||||
* OPTARG: Bourne Shell Variables.
|
||||
(line 34)
|
||||
@@ -12570,9 +12621,9 @@ D.3 Parameter and Variable Index
|
||||
(line 38)
|
||||
* OSTYPE: Bash Variables. (line 608)
|
||||
* output-meta: Readline Init File Syntax.
|
||||
(line 307)
|
||||
(line 327)
|
||||
* page-completions: Readline Init File Syntax.
|
||||
(line 315)
|
||||
(line 336)
|
||||
* PATH: Bourne Shell Variables.
|
||||
(line 42)
|
||||
* PIPESTATUS: Bash Variables. (line 611)
|
||||
@@ -12595,21 +12646,21 @@ D.3 Parameter and Variable Index
|
||||
* READLINE_POINT: Bash Variables. (line 684)
|
||||
* REPLY: Bash Variables. (line 688)
|
||||
* revert-all-at-newline: Readline Init File Syntax.
|
||||
(line 325)
|
||||
(line 346)
|
||||
* search-ignore-case: Readline Init File Syntax.
|
||||
(line 332)
|
||||
(line 353)
|
||||
* SECONDS: Bash Variables. (line 691)
|
||||
* SHELL: Bash Variables. (line 701)
|
||||
* SHELLOPTS: Bash Variables. (line 706)
|
||||
* SHLVL: Bash Variables. (line 715)
|
||||
* show-all-if-ambiguous: Readline Init File Syntax.
|
||||
(line 337)
|
||||
* show-all-if-unmodified: Readline Init File Syntax.
|
||||
(line 343)
|
||||
* show-mode-in-prompt: Readline Init File Syntax.
|
||||
(line 352)
|
||||
* skip-completed-text: Readline Init File Syntax.
|
||||
(line 358)
|
||||
* show-all-if-unmodified: Readline Init File Syntax.
|
||||
(line 364)
|
||||
* show-mode-in-prompt: Readline Init File Syntax.
|
||||
(line 373)
|
||||
* skip-completed-text: Readline Init File Syntax.
|
||||
(line 379)
|
||||
* SRANDOM: Bash Variables. (line 720)
|
||||
* TEXTDOMAIN: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
@@ -12620,11 +12671,11 @@ D.3 Parameter and Variable Index
|
||||
* TMPDIR: Bash Variables. (line 779)
|
||||
* UID: Bash Variables. (line 783)
|
||||
* vi-cmd-mode-string: Readline Init File Syntax.
|
||||
(line 371)
|
||||
(line 392)
|
||||
* vi-ins-mode-string: Readline Init File Syntax.
|
||||
(line 382)
|
||||
(line 403)
|
||||
* visible-stats: Readline Init File Syntax.
|
||||
(line 393)
|
||||
(line 414)
|
||||
|
||||
|
||||
File: bash.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
|
||||
@@ -13010,138 +13061,138 @@ D.5 Concept Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top897
|
||||
Node: Introduction2834
|
||||
Node: What is Bash?3047
|
||||
Node: What is a shell?4188
|
||||
Node: Definitions6767
|
||||
Node: Basic Shell Features9943
|
||||
Node: Shell Syntax11163
|
||||
Node: Shell Operation12190
|
||||
Node: Quoting13488
|
||||
Node: Escape Character14801
|
||||
Node: Single Quotes15299
|
||||
Node: Double Quotes15648
|
||||
Node: ANSI-C Quoting16991
|
||||
Node: Locale Translation18376
|
||||
Node: Creating Internationalized Scripts19720
|
||||
Node: Comments23918
|
||||
Node: Shell Commands24553
|
||||
Node: Reserved Words25492
|
||||
Node: Simple Commands26357
|
||||
Node: Pipelines27016
|
||||
Node: Lists30079
|
||||
Node: Compound Commands31951
|
||||
Node: Looping Constructs32960
|
||||
Node: Conditional Constructs35504
|
||||
Node: Command Grouping50325
|
||||
Node: Coprocesses51812
|
||||
Node: GNU Parallel54508
|
||||
Node: Shell Functions55426
|
||||
Node: Shell Parameters63532
|
||||
Node: Positional Parameters68065
|
||||
Node: Special Parameters69000
|
||||
Node: Shell Expansions72306
|
||||
Node: Brace Expansion74495
|
||||
Node: Tilde Expansion77158
|
||||
Node: Shell Parameter Expansion79924
|
||||
Node: Command Substitution99031
|
||||
Node: Arithmetic Expansion102564
|
||||
Node: Process Substitution103529
|
||||
Node: Word Splitting104666
|
||||
Node: Filename Expansion106807
|
||||
Node: Pattern Matching109903
|
||||
Node: Quote Removal115136
|
||||
Node: Redirections115440
|
||||
Node: Executing Commands125249
|
||||
Node: Simple Command Expansion125916
|
||||
Node: Command Search and Execution128027
|
||||
Node: Command Execution Environment130435
|
||||
Node: Environment133744
|
||||
Node: Exit Status135448
|
||||
Node: Signals137233
|
||||
Node: Shell Scripts140847
|
||||
Node: Shell Builtin Commands143939
|
||||
Node: Bourne Shell Builtins146050
|
||||
Node: Bash Builtins170820
|
||||
Node: Modifying Shell Behavior205919
|
||||
Node: The Set Builtin206261
|
||||
Node: The Shopt Builtin217844
|
||||
Node: Special Builtins234806
|
||||
Node: Shell Variables235795
|
||||
Node: Bourne Shell Variables236229
|
||||
Node: Bash Variables238422
|
||||
Node: Bash Features275617
|
||||
Node: Invoking Bash276631
|
||||
Node: Bash Startup Files283030
|
||||
Node: Interactive Shells288333
|
||||
Node: What is an Interactive Shell?288741
|
||||
Node: Is this Shell Interactive?289407
|
||||
Node: Interactive Shell Behavior290231
|
||||
Node: Bash Conditional Expressions293985
|
||||
Node: Shell Arithmetic299159
|
||||
Node: Aliases302241
|
||||
Node: Arrays305196
|
||||
Node: The Directory Stack311995
|
||||
Node: Directory Stack Builtins312792
|
||||
Node: Controlling the Prompt317241
|
||||
Node: The Restricted Shell320379
|
||||
Node: Bash POSIX Mode323166
|
||||
Node: Shell Compatibility Mode340677
|
||||
Node: Job Control349444
|
||||
Node: Job Control Basics349901
|
||||
Node: Job Control Builtins355075
|
||||
Node: Job Control Variables361019
|
||||
Node: Command Line Editing362196
|
||||
Node: Introduction and Notation363900
|
||||
Node: Readline Interaction365544
|
||||
Node: Readline Bare Essentials366732
|
||||
Node: Readline Movement Commands368550
|
||||
Node: Readline Killing Commands369547
|
||||
Node: Readline Arguments371525
|
||||
Node: Searching372582
|
||||
Node: Readline Init File374811
|
||||
Node: Readline Init File Syntax376093
|
||||
Node: Conditional Init Constructs401031
|
||||
Node: Sample Init File405396
|
||||
Node: Bindable Readline Commands408517
|
||||
Node: Commands For Moving409742
|
||||
Node: Commands For History411969
|
||||
Node: Commands For Text417174
|
||||
Node: Commands For Killing421308
|
||||
Node: Numeric Arguments424109
|
||||
Node: Commands For Completion425261
|
||||
Node: Keyboard Macros429577
|
||||
Node: Miscellaneous Commands430278
|
||||
Node: Readline vi Mode436932
|
||||
Node: Programmable Completion437884
|
||||
Node: Programmable Completion Builtins445841
|
||||
Node: A Programmable Completion Example457407
|
||||
Node: Using History Interactively462752
|
||||
Node: Bash History Facilities463433
|
||||
Node: Bash History Builtins466545
|
||||
Node: History Interaction471788
|
||||
Node: Event Designators476113
|
||||
Node: Word Designators477696
|
||||
Node: Modifiers479848
|
||||
Node: Installing Bash481757
|
||||
Node: Basic Installation482891
|
||||
Node: Compilers and Options486770
|
||||
Node: Compiling For Multiple Architectures487520
|
||||
Node: Installation Names489269
|
||||
Node: Specifying the System Type491503
|
||||
Node: Sharing Defaults492249
|
||||
Node: Operation Controls492963
|
||||
Node: Optional Features493982
|
||||
Node: Reporting Bugs505784
|
||||
Node: Major Differences From The Bourne Shell507133
|
||||
Node: GNU Free Documentation License526868
|
||||
Node: Indexes552045
|
||||
Node: Builtin Index552496
|
||||
Node: Reserved Word Index559594
|
||||
Node: Variable Index562039
|
||||
Node: Function Index579170
|
||||
Node: Concept Index593026
|
||||
Node: Top901
|
||||
Node: Introduction2842
|
||||
Node: What is Bash?3055
|
||||
Node: What is a shell?4196
|
||||
Node: Definitions6775
|
||||
Node: Basic Shell Features9951
|
||||
Node: Shell Syntax11171
|
||||
Node: Shell Operation12198
|
||||
Node: Quoting13496
|
||||
Node: Escape Character14809
|
||||
Node: Single Quotes15307
|
||||
Node: Double Quotes15656
|
||||
Node: ANSI-C Quoting16999
|
||||
Node: Locale Translation18384
|
||||
Node: Creating Internationalized Scripts19728
|
||||
Node: Comments23926
|
||||
Node: Shell Commands24561
|
||||
Node: Reserved Words25500
|
||||
Node: Simple Commands26365
|
||||
Node: Pipelines27024
|
||||
Node: Lists30087
|
||||
Node: Compound Commands31959
|
||||
Node: Looping Constructs32968
|
||||
Node: Conditional Constructs35512
|
||||
Node: Command Grouping50373
|
||||
Node: Coprocesses51860
|
||||
Node: GNU Parallel54556
|
||||
Node: Shell Functions55474
|
||||
Node: Shell Parameters63580
|
||||
Node: Positional Parameters68113
|
||||
Node: Special Parameters69048
|
||||
Node: Shell Expansions72358
|
||||
Node: Brace Expansion74547
|
||||
Node: Tilde Expansion77210
|
||||
Node: Shell Parameter Expansion79976
|
||||
Node: Command Substitution99083
|
||||
Node: Arithmetic Expansion102616
|
||||
Node: Process Substitution103581
|
||||
Node: Word Splitting104718
|
||||
Node: Filename Expansion106859
|
||||
Node: Pattern Matching109955
|
||||
Node: Quote Removal115188
|
||||
Node: Redirections115492
|
||||
Node: Executing Commands125301
|
||||
Node: Simple Command Expansion125968
|
||||
Node: Command Search and Execution128079
|
||||
Node: Command Execution Environment130487
|
||||
Node: Environment133796
|
||||
Node: Exit Status135500
|
||||
Node: Signals137285
|
||||
Node: Shell Scripts140899
|
||||
Node: Shell Builtin Commands143991
|
||||
Node: Bourne Shell Builtins146102
|
||||
Node: Bash Builtins170872
|
||||
Node: Modifying Shell Behavior205971
|
||||
Node: The Set Builtin206313
|
||||
Node: The Shopt Builtin217896
|
||||
Node: Special Builtins234858
|
||||
Node: Shell Variables235847
|
||||
Node: Bourne Shell Variables236281
|
||||
Node: Bash Variables238474
|
||||
Node: Bash Features275669
|
||||
Node: Invoking Bash276683
|
||||
Node: Bash Startup Files283082
|
||||
Node: Interactive Shells288385
|
||||
Node: What is an Interactive Shell?288793
|
||||
Node: Is this Shell Interactive?289459
|
||||
Node: Interactive Shell Behavior290283
|
||||
Node: Bash Conditional Expressions294037
|
||||
Node: Shell Arithmetic299211
|
||||
Node: Aliases302293
|
||||
Node: Arrays305248
|
||||
Node: The Directory Stack312047
|
||||
Node: Directory Stack Builtins312844
|
||||
Node: Controlling the Prompt317293
|
||||
Node: The Restricted Shell320431
|
||||
Node: Bash POSIX Mode323218
|
||||
Node: Shell Compatibility Mode341267
|
||||
Node: Job Control350218
|
||||
Node: Job Control Basics350675
|
||||
Node: Job Control Builtins355972
|
||||
Node: Job Control Variables361916
|
||||
Node: Command Line Editing363093
|
||||
Node: Introduction and Notation364797
|
||||
Node: Readline Interaction366892
|
||||
Node: Readline Bare Essentials368080
|
||||
Node: Readline Movement Commands369898
|
||||
Node: Readline Killing Commands370895
|
||||
Node: Readline Arguments372873
|
||||
Node: Searching373930
|
||||
Node: Readline Init File376159
|
||||
Node: Readline Init File Syntax377441
|
||||
Node: Conditional Init Constructs403981
|
||||
Node: Sample Init File408346
|
||||
Node: Bindable Readline Commands411467
|
||||
Node: Commands For Moving412692
|
||||
Node: Commands For History414919
|
||||
Node: Commands For Text420124
|
||||
Node: Commands For Killing424258
|
||||
Node: Numeric Arguments427059
|
||||
Node: Commands For Completion428211
|
||||
Node: Keyboard Macros432527
|
||||
Node: Miscellaneous Commands433228
|
||||
Node: Readline vi Mode439882
|
||||
Node: Programmable Completion440834
|
||||
Node: Programmable Completion Builtins448791
|
||||
Node: A Programmable Completion Example460357
|
||||
Node: Using History Interactively465702
|
||||
Node: Bash History Facilities466383
|
||||
Node: Bash History Builtins469495
|
||||
Node: History Interaction474738
|
||||
Node: Event Designators479063
|
||||
Node: Word Designators480646
|
||||
Node: Modifiers482798
|
||||
Node: Installing Bash484707
|
||||
Node: Basic Installation485841
|
||||
Node: Compilers and Options489720
|
||||
Node: Compiling For Multiple Architectures490470
|
||||
Node: Installation Names492219
|
||||
Node: Specifying the System Type494453
|
||||
Node: Sharing Defaults495199
|
||||
Node: Operation Controls495913
|
||||
Node: Optional Features496932
|
||||
Node: Reporting Bugs508734
|
||||
Node: Major Differences From The Bourne Shell510083
|
||||
Node: GNU Free Documentation License529818
|
||||
Node: Indexes554995
|
||||
Node: Builtin Index555446
|
||||
Node: Reserved Word Index562544
|
||||
Node: Variable Index564989
|
||||
Node: Function Index582261
|
||||
Node: Concept Index596117
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
+325
-274
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 7.1 from
|
||||
bashref.texi.
|
||||
|
||||
This text is a brief description of the features that are present in the
|
||||
Bash shell (version 5.3, 16 August 2024).
|
||||
Bash shell (version 5.3, 5 September 2024).
|
||||
|
||||
This is Edition 5.3, last updated 16 August 2024, of ‘The GNU Bash
|
||||
This is Edition 5.3, last updated 5 September 2024, of ‘The GNU Bash
|
||||
Reference Manual’, for ‘Bash’, Version 5.3.
|
||||
|
||||
Copyright © 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, 16 August 2024). The Bash home page is
|
||||
Bash shell (version 5.3, 5 September 2024). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 5.3, last updated 16 August 2024, of ‘The GNU Bash
|
||||
This is Edition 5.3, last updated 5 September 2024, of ‘The GNU Bash
|
||||
Reference Manual’, for ‘Bash’, Version 5.3.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -904,11 +904,11 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
|
||||
|
||||
Each clause must be terminated with ‘;;’, ‘;&’, or ‘;;&’. The WORD
|
||||
undergoes tilde expansion, parameter expansion, command
|
||||
substitution, arithmetic expansion, and quote removal (*note Shell
|
||||
Parameter Expansion::) before matching is attempted. Each PATTERN
|
||||
undergoes tilde expansion, parameter expansion, command
|
||||
substitution, arithmetic expansion, process substitution, and quote
|
||||
removal.
|
||||
substitution, process substitution, arithmetic expansion, and quote
|
||||
removal (*note Shell Parameter Expansion::) before the shell
|
||||
attempts to match the pattern. Each PATTERN undergoes tilde
|
||||
expansion, parameter expansion, command substitution, arithmetic
|
||||
expansion, process substitution, and quote removal.
|
||||
|
||||
There may be an arbitrary number of ‘case’ clauses, each terminated
|
||||
by a ‘;;’, ‘;&’, or ‘;;&’. The first pattern that matches
|
||||
@@ -1556,10 +1556,10 @@ only be referenced; assignment to them is not allowed.
|
||||
‘*’
|
||||
($*) Expands to the positional parameters, starting from one. When
|
||||
the expansion is not within double quotes, each positional
|
||||
parameter expands to a separate word. In contexts where it is
|
||||
performed, those words are subject to further word splitting and
|
||||
filename expansion. When the expansion occurs within double
|
||||
quotes, it expands to a single word with the value of each
|
||||
parameter expands to a separate word. In contexts where these
|
||||
expansions are performed, those words are subject to further word
|
||||
splitting and filename expansion. When the expansion occurs within
|
||||
double quotes, it expands to a single word with the value of each
|
||||
parameter separated by the first character of the ‘IFS’ special
|
||||
variable. That is, ‘"$*"’ is equivalent to ‘"$1C$2C..."’, where C
|
||||
is the first character of the value of the ‘IFS’ variable. If
|
||||
@@ -1588,7 +1588,7 @@ only be referenced; assignment to them is not allowed.
|
||||
|
||||
‘?’
|
||||
($?) Expands to the exit status of the most recently executed
|
||||
foreground command.
|
||||
command.
|
||||
|
||||
‘-’
|
||||
($-, a hyphen.) Expands to the current option flags as specified
|
||||
@@ -7357,102 +7357,113 @@ startup files.
|
||||
is stopped is 'Stopped(SIGNAME)', where SIGNAME is, for example,
|
||||
‘SIGTSTP’.
|
||||
|
||||
6. Alias expansion is always enabled, even in non-interactive shells.
|
||||
6. If the shell is interactive, Bash does not perform job
|
||||
notifications between executing commands in lists separated by ‘;’
|
||||
or newline. Non-interactive shells print status messages after a
|
||||
foreground job in a list completes.
|
||||
|
||||
7. Reserved words appearing in a context where reserved words are
|
||||
7. If the shell is interactive, Bash waits until the next prompt
|
||||
before printing the status of a background job that changes status
|
||||
or a foreground job that terminates due to a signal.
|
||||
Non-interactive shells print status messages after a foreground job
|
||||
completes.
|
||||
|
||||
8. Alias expansion is always enabled, even in non-interactive shells.
|
||||
|
||||
9. Reserved words appearing in a context where reserved words are
|
||||
recognized do not undergo alias expansion.
|
||||
|
||||
8. Alias expansion is performed when initially parsing a command
|
||||
10. Alias expansion is performed when initially parsing a command
|
||||
substitution. The default mode generally defers it, when enabled,
|
||||
until the command substitution is executed. This means that
|
||||
command substitution will not expand aliases that are defined after
|
||||
the command substitution is initially parsed (e.g., as part of a
|
||||
function definition).
|
||||
|
||||
9. The POSIX ‘PS1’ and ‘PS2’ expansions of ‘!’ to the history number
|
||||
11. The POSIX ‘PS1’ and ‘PS2’ expansions of ‘!’ to the history number
|
||||
and ‘!!’ to ‘!’ are enabled, and parameter expansion is performed
|
||||
on the values of ‘PS1’ and ‘PS2’ regardless of the setting of the
|
||||
‘promptvars’ option.
|
||||
|
||||
10. The POSIX startup files are executed (‘$ENV’) rather than the
|
||||
12. The POSIX startup files are executed (‘$ENV’) rather than the
|
||||
normal Bash files.
|
||||
|
||||
11. Tilde expansion is only performed on assignments preceding a
|
||||
13. Tilde expansion is only performed on assignments preceding a
|
||||
command name, rather than on all assignment statements on the line.
|
||||
|
||||
12. The default history file is ‘~/.sh_history’ (this is the default
|
||||
14. The default history file is ‘~/.sh_history’ (this is the default
|
||||
value the shell assigns to ‘$HISTFILE’).
|
||||
|
||||
13. Redirection operators do not perform filename expansion on the
|
||||
15. Redirection operators do not perform filename expansion on the
|
||||
word in the redirection unless the shell is interactive.
|
||||
|
||||
14. Redirection operators do not perform word splitting on the word in
|
||||
16. Redirection operators do not perform word splitting on the word in
|
||||
the redirection.
|
||||
|
||||
15. Function names must be valid shell ‘name’s. That is, they may not
|
||||
17. Function names must be valid shell ‘name’s. That is, they may not
|
||||
contain characters other than letters, digits, and underscores, and
|
||||
may not start with a digit. Declaring a function with an invalid
|
||||
name causes a fatal syntax error in non-interactive shells.
|
||||
|
||||
16. Function names may not be the same as one of the POSIX special
|
||||
18. Function names may not be the same as one of the POSIX special
|
||||
builtins.
|
||||
|
||||
17. Even if a shell function whose name contains a slash was defined
|
||||
19. Even if a shell function whose name contains a slash was defined
|
||||
before entering POSIX mode, the shell will not execute a function
|
||||
whose name contains one or more slashes.
|
||||
|
||||
18. POSIX special builtins are found before shell functions during
|
||||
20. POSIX special builtins are found before shell functions during
|
||||
command lookup, including output printed by the ‘type’ and
|
||||
‘command’ builtins.
|
||||
|
||||
19. When printing shell function definitions (e.g., by ‘type’), Bash
|
||||
21. When printing shell function definitions (e.g., by ‘type’), Bash
|
||||
does not print the ‘function’ keyword.
|
||||
|
||||
20. Literal tildes that appear as the first character in elements of
|
||||
22. Literal tildes that appear as the first character in elements of
|
||||
the ‘PATH’ variable are not expanded as described above under *note
|
||||
Tilde Expansion::.
|
||||
|
||||
21. The ‘time’ reserved word may be used by itself as a command. When
|
||||
23. The ‘time’ reserved word may be used by itself as a command. When
|
||||
used in this way, it displays timing statistics for the shell and
|
||||
its completed children. The ‘TIMEFORMAT’ variable controls the
|
||||
format of the timing information.
|
||||
|
||||
22. When parsing and expanding a ${...} expansion that appears within
|
||||
24. When parsing and expanding a ${...} expansion that appears within
|
||||
double quotes, single quotes are no longer special and cannot be
|
||||
used to quote a closing brace or other special character, unless
|
||||
the operator is one of those defined to perform pattern removal.
|
||||
In this case, they do not have to appear as matched pairs.
|
||||
|
||||
23. The parser does not recognize ‘time’ as a reserved word if the
|
||||
25. The parser does not recognize ‘time’ as a reserved word if the
|
||||
next token begins with a ‘-’.
|
||||
|
||||
24. The ‘!’ character does not introduce history expansion within a
|
||||
26. The ‘!’ character does not introduce history expansion within a
|
||||
double-quoted string, even if the ‘histexpand’ option is enabled.
|
||||
|
||||
25. If a POSIX special builtin returns an error status, a
|
||||
27. If a POSIX special builtin returns an error status, a
|
||||
non-interactive shell exits. The fatal errors are those listed in
|
||||
the POSIX standard, and include things like passing incorrect
|
||||
options, redirection errors, variable assignment errors for
|
||||
assignments preceding the command name, and so on.
|
||||
|
||||
26. The ‘unset’ builtin with the ‘-v’ option specified returns a fatal
|
||||
28. The ‘unset’ builtin with the ‘-v’ option specified returns a fatal
|
||||
error if it attempts to unset a ‘readonly’ or ‘non-unsettable’
|
||||
variable, or encounters a variable name argument that is an invalid
|
||||
identifier, which causes a non-interactive shell to exit.
|
||||
|
||||
27. When asked to unset a variable that appears in an assignment
|
||||
29. When asked to unset a variable that appears in an assignment
|
||||
statement preceding the command, the ‘unset’ builtin attempts to
|
||||
unset a variable of the same name in the current or previous scope
|
||||
as well. This implements the required "if an assigned variable is
|
||||
further modified by the utility, the modifications made by the
|
||||
utility shall persist" behavior.
|
||||
|
||||
28. A non-interactive shell exits with an error status if a variable
|
||||
30. A non-interactive shell exits with an error status if a variable
|
||||
assignment error occurs when no command name follows the assignment
|
||||
statements. A variable assignment error occurs, for example, when
|
||||
trying to assign a value to a readonly variable.
|
||||
|
||||
29. A non-interactive shell exits with an error status if a variable
|
||||
31. A non-interactive shell exits with an error status if a variable
|
||||
assignment error occurs in an assignment statement preceding a
|
||||
special builtin, but not with any other simple command. For any
|
||||
other simple command, the shell aborts execution of that command,
|
||||
@@ -7460,166 +7471,166 @@ startup files.
|
||||
perform any further processing of the command in which the error
|
||||
occurred").
|
||||
|
||||
30. A non-interactive shell exits with an error status if the
|
||||
32. A non-interactive shell exits with an error status if the
|
||||
iteration variable in a ‘for’ statement or the selection variable
|
||||
in a ‘select’ statement is a readonly variable or has an invalid
|
||||
name.
|
||||
|
||||
31. Non-interactive shells exit if FILENAME in ‘.’ FILENAME is not
|
||||
33. Non-interactive shells exit if FILENAME in ‘.’ FILENAME is not
|
||||
found.
|
||||
|
||||
32. Non-interactive shells exit if a syntax error in an arithmetic
|
||||
34. Non-interactive shells exit if a syntax error in an arithmetic
|
||||
expansion results in an invalid expression.
|
||||
|
||||
33. Non-interactive shells exit if a parameter expansion error occurs.
|
||||
35. Non-interactive shells exit if a parameter expansion error occurs.
|
||||
|
||||
34. Non-interactive shells exit if there is a syntax error in a script
|
||||
36. Non-interactive shells exit if there is a syntax error in a script
|
||||
read with the ‘.’ or ‘source’ builtins, or in a string processed by
|
||||
the ‘eval’ builtin.
|
||||
|
||||
35. While variable indirection is available, it may not be applied to
|
||||
37. While variable indirection is available, it may not be applied to
|
||||
the ‘#’ and ‘?’ special parameters.
|
||||
|
||||
36. Expanding the ‘*’ special parameter in a pattern context where the
|
||||
38. Expanding the ‘*’ special parameter in a pattern context where the
|
||||
expansion is double-quoted does not treat the ‘$*’ as if it were
|
||||
double-quoted.
|
||||
|
||||
37. Assignment statements preceding POSIX special builtins persist in
|
||||
39. Assignment statements preceding POSIX special builtins persist in
|
||||
the shell environment after the builtin completes.
|
||||
|
||||
38. The ‘command’ builtin does not prevent builtins that take
|
||||
40. The ‘command’ builtin does not prevent builtins that take
|
||||
assignment statements as arguments from expanding them as
|
||||
assignment statements; when not in POSIX mode, assignment builtins
|
||||
lose their assignment statement expansion properties when preceded
|
||||
by ‘command’.
|
||||
|
||||
39. The ‘bg’ builtin uses the required format to describe each job
|
||||
41. The ‘bg’ builtin uses the required format to describe each job
|
||||
placed in the background, which does not include an indication of
|
||||
whether the job is the current or previous job.
|
||||
|
||||
40. The output of ‘kill -l’ prints all the signal names on a single
|
||||
42. The output of ‘kill -l’ prints all the signal names on a single
|
||||
line, separated by spaces, without the ‘SIG’ prefix.
|
||||
|
||||
41. The ‘kill’ builtin does not accept signal names with a ‘SIG’
|
||||
43. The ‘kill’ builtin does not accept signal names with a ‘SIG’
|
||||
prefix.
|
||||
|
||||
42. The ‘export’ and ‘readonly’ builtin commands display their output
|
||||
44. The ‘export’ and ‘readonly’ builtin commands display their output
|
||||
in the format required by POSIX.
|
||||
|
||||
43. If the ‘export’ and ‘readonly’ builtin commands get an argument
|
||||
45. If the ‘export’ and ‘readonly’ builtin commands get an argument
|
||||
that is not a valid identifier, and they are not operating on shell
|
||||
functions, they return an error. This will cause a non-interactive
|
||||
shell to exit because these are special builtins.
|
||||
|
||||
44. The ‘trap’ builtin displays signal names without the leading
|
||||
46. The ‘trap’ builtin displays signal names without the leading
|
||||
‘SIG’.
|
||||
|
||||
45. The ‘trap’ builtin doesn't check the first argument for a possible
|
||||
47. The ‘trap’ builtin doesn't check the first argument for a possible
|
||||
signal specification and revert the signal handling to the original
|
||||
disposition if it is, unless that argument consists solely of
|
||||
digits and is a valid signal number. If users want to reset the
|
||||
handler for a given signal to the original disposition, they should
|
||||
use ‘-’ as the first argument.
|
||||
|
||||
46. ‘trap -p’ without arguments displays signals whose dispositions
|
||||
48. ‘trap -p’ without arguments displays signals whose dispositions
|
||||
are set to SIG_DFL and those that were ignored when the shell
|
||||
started, not just trapped signals.
|
||||
|
||||
47. The ‘.’ and ‘source’ builtins do not search the current directory
|
||||
49. The ‘.’ and ‘source’ builtins do not search the current directory
|
||||
for the filename argument if it is not found by searching ‘PATH’.
|
||||
|
||||
48. Enabling POSIX mode has the effect of setting the
|
||||
50. Enabling POSIX mode has the effect of setting the
|
||||
‘inherit_errexit’ option, so subshells spawned to execute command
|
||||
substitutions inherit the value of the ‘-e’ option from the parent
|
||||
shell. When the ‘inherit_errexit’ option is not enabled, Bash
|
||||
clears the ‘-e’ option in such subshells.
|
||||
|
||||
49. Enabling POSIX mode has the effect of setting the ‘shift_verbose’
|
||||
51. Enabling POSIX mode has the effect of setting the ‘shift_verbose’
|
||||
option, so numeric arguments to ‘shift’ that exceed the number of
|
||||
positional parameters will result in an error message.
|
||||
|
||||
50. When the ‘alias’ builtin displays alias definitions, it does not
|
||||
52. When the ‘alias’ builtin displays alias definitions, it does not
|
||||
display them with a leading ‘alias ’ unless the ‘-p’ option is
|
||||
supplied.
|
||||
|
||||
51. When the ‘set’ builtin is invoked without options, it does not
|
||||
53. When the ‘set’ builtin is invoked without options, it does not
|
||||
display shell function names and definitions.
|
||||
|
||||
52. When the ‘set’ builtin is invoked without options, it displays
|
||||
54. When the ‘set’ builtin is invoked without options, it displays
|
||||
variable values without quotes, unless they contain shell
|
||||
metacharacters, even if the result contains nonprinting characters.
|
||||
|
||||
53. When the ‘cd’ builtin is invoked in logical mode, and the pathname
|
||||
55. When the ‘cd’ builtin is invoked in logical mode, and the pathname
|
||||
constructed from ‘$PWD’ and the directory name supplied as an
|
||||
argument does not refer to an existing directory, ‘cd’ will fail
|
||||
instead of falling back to physical mode.
|
||||
|
||||
54. When the ‘cd’ builtin cannot change a directory because the length
|
||||
56. When the ‘cd’ builtin cannot change a directory because the length
|
||||
of the pathname constructed from ‘$PWD’ and the directory name
|
||||
supplied as an argument exceeds ‘PATH_MAX’ when canonicalized, ‘cd’
|
||||
will attempt to use the supplied directory name.
|
||||
|
||||
55. The ‘pwd’ builtin verifies that the value it prints is the same as
|
||||
57. The ‘pwd’ builtin verifies that the value it prints is the same as
|
||||
the current directory, even if it is not asked to check the file
|
||||
system with the ‘-P’ option.
|
||||
|
||||
56. When listing the history, the ‘fc’ builtin does not include an
|
||||
58. When listing the history, the ‘fc’ builtin does not include an
|
||||
indication of whether or not a history entry has been modified.
|
||||
|
||||
57. The default editor used by ‘fc’ is ‘ed’.
|
||||
59. The default editor used by ‘fc’ is ‘ed’.
|
||||
|
||||
58. ‘fc’ treats extra arguments as an error instead of ignoring them.
|
||||
60. ‘fc’ treats extra arguments as an error instead of ignoring them.
|
||||
|
||||
59. If there are too many arguments supplied to ‘fc -s’, ‘fc’ prints
|
||||
61. If there are too many arguments supplied to ‘fc -s’, ‘fc’ prints
|
||||
an error message and returns failure.
|
||||
|
||||
60. The ‘type’ and ‘command’ builtins will not report a non-executable
|
||||
62. The ‘type’ and ‘command’ builtins will not report a non-executable
|
||||
file as having been found, though the shell will attempt to execute
|
||||
such a file if it is the only so-named file found in ‘$PATH’.
|
||||
|
||||
61. The ‘vi’ editing mode will invoke the ‘vi’ editor directly when
|
||||
63. The ‘vi’ editing mode will invoke the ‘vi’ editor directly when
|
||||
the ‘v’ command is run, instead of checking ‘$VISUAL’ and
|
||||
‘$EDITOR’.
|
||||
|
||||
62. When the ‘xpg_echo’ option is enabled, Bash does not attempt to
|
||||
64. When the ‘xpg_echo’ option is enabled, Bash does not attempt to
|
||||
interpret any arguments to ‘echo’ as options. Each argument is
|
||||
displayed, after escape characters are converted.
|
||||
|
||||
63. The ‘ulimit’ builtin uses a block size of 512 bytes for the ‘-c’
|
||||
65. The ‘ulimit’ builtin uses a block size of 512 bytes for the ‘-c’
|
||||
and ‘-f’ options.
|
||||
|
||||
64. The arrival of ‘SIGCHLD’ when a trap is set on ‘SIGCHLD’ does not
|
||||
66. The arrival of ‘SIGCHLD’ when a trap is set on ‘SIGCHLD’ does not
|
||||
interrupt the ‘wait’ builtin and cause it to return immediately.
|
||||
The trap command is run once for each child that exits.
|
||||
|
||||
65. The ‘read’ builtin may be interrupted by a signal for which a trap
|
||||
67. The ‘read’ builtin may be interrupted by a signal for which a trap
|
||||
has been set. If Bash receives a trapped signal while executing
|
||||
‘read’, the trap handler executes and ‘read’ returns an exit status
|
||||
greater than 128.
|
||||
|
||||
66. The ‘printf’ builtin uses ‘double’ (via ‘strtod’) to convert
|
||||
68. The ‘printf’ builtin uses ‘double’ (via ‘strtod’) to convert
|
||||
arguments corresponding to floating point conversion specifiers,
|
||||
instead of ‘long double’ if it's available. The ‘L’ length
|
||||
modifier forces ‘printf’ to use ‘long double’ if it's available.
|
||||
|
||||
67. Bash removes an exited background process's status from the list
|
||||
69. Bash removes an exited background process's status from the list
|
||||
of such statuses after the ‘wait’ builtin is used to obtain it.
|
||||
|
||||
68. A double quote character (‘"’) is treated specially when it
|
||||
70. A double quote character (‘"’) is treated specially when it
|
||||
appears in a backquoted command substitution in the body of a
|
||||
here-document that undergoes expansion. That means, for example,
|
||||
that a backslash preceding a double quote character will escape it
|
||||
and the backslash will be removed.
|
||||
|
||||
69. The ‘test’ builtin compares strings using the current locale when
|
||||
71. The ‘test’ builtin compares strings using the current locale when
|
||||
processing the ‘<’ and ‘>’ binary operators.
|
||||
|
||||
70. The ‘test’ builtin's ‘-t’ unary primary requires an argument.
|
||||
72. The ‘test’ builtin's ‘-t’ unary primary requires an argument.
|
||||
Historical versions of ‘test’ made the argument optional in certain
|
||||
cases, and Bash attempts to accommodate those for backwards
|
||||
compatibility.
|
||||
|
||||
71. Command substitutions don't set the ‘?’ special parameter. The
|
||||
73. Command substitutions don't set the ‘?’ special parameter. The
|
||||
exit status of a simple command without a command word is still the
|
||||
exit status of the last command substitution that occurred while
|
||||
evaluating the variable assignments and redirections in that
|
||||
@@ -7805,6 +7816,9 @@ required for bash-5.1 and later versions.
|
||||
as bindable command names, and displays any key sequences
|
||||
bound to those commands, instead of treating the arguments as
|
||||
key sequences to bind.
|
||||
• Interactive shells will notify the user of completed jobs
|
||||
while sourcing a script. Newer versions defer notification
|
||||
until script execution completes.
|
||||
|
||||
|
||||
File: bashref.info, Node: Job Control, Next: Command Line Editing, Prev: Bash Features, Up: Top
|
||||
@@ -7897,10 +7911,12 @@ equivalent to ‘bg %1’
|
||||
|
||||
The shell learns immediately whenever a job changes state. Normally,
|
||||
Bash waits until it is about to print a prompt before reporting changes
|
||||
in a job's status so as to not interrupt any other output. If the ‘-b’
|
||||
option to the ‘set’ builtin is enabled, Bash reports such changes
|
||||
immediately (*note The Set Builtin::). Any trap on ‘SIGCHLD’ is
|
||||
executed for each child process that exits.
|
||||
in a job's status so as to not interrupt any other output, though it
|
||||
will notify of changes in a job's status after a command in a list
|
||||
completes, before executing the next command. If the ‘-b’ option to the
|
||||
‘set’ builtin is enabled, Bash reports such changes immediately (*note
|
||||
The Set Builtin::). Any trap on ‘SIGCHLD’ is executed for each child
|
||||
process that exits.
|
||||
|
||||
If an attempt to exit Bash is made while jobs are stopped, (or
|
||||
running, if the ‘checkjobs’ option is enabled - see *note The Shopt
|
||||
@@ -8121,20 +8137,29 @@ produced when the <k> key is pressed while the Control key is depressed.
|
||||
|
||||
The text ‘M-k’ is read as 'Meta-K' and describes the character
|
||||
produced when the Meta key (if you have one) is depressed, and the <k>
|
||||
key is pressed. The Meta key is labeled <ALT> on many keyboards. On
|
||||
keyboards with two keys labeled <ALT> (usually to either side of the
|
||||
space bar), the <ALT> on the left side is generally set to work as a
|
||||
Meta key. The <ALT> key on the right may also be configured to work as
|
||||
a Meta key or may be configured as some other modifier, such as a
|
||||
Compose key for typing accented characters.
|
||||
key is pressed (a “meta character”). The Meta key is labeled <ALT> on
|
||||
many keyboards. On keyboards with two keys labeled <ALT> (usually to
|
||||
either side of the space bar), the <ALT> on the left side is generally
|
||||
set to work as a Meta key. The <ALT> key on the right may also be
|
||||
configured to work as a Meta key or may be configured as some other
|
||||
modifier, such as a Compose key for typing accented characters.
|
||||
|
||||
On some keyboards, the Meta key modifier produces meta characters
|
||||
with the eighth bit (0200) set (you can use the ‘enable-meta-key’
|
||||
variable to control whether or not it does this, if the keyboard allows
|
||||
it). On many others, the terminal or terminal emulator converts the
|
||||
metafied key to a key sequence beginning with <ESC> as described in the
|
||||
next paragraph.
|
||||
|
||||
If you do not have a Meta or <ALT> key, or another key working as a
|
||||
Meta key, the identical keystroke can be generated by typing <ESC>
|
||||
_first_, and then typing <k>. Either process is known as “metafying”
|
||||
the <k> key.
|
||||
Meta key, you can generally achieve the latter effect by typing <ESC>
|
||||
_first_, and then typing <k>. The <ESC> character is known as the “meta
|
||||
prefix”).
|
||||
|
||||
Either process is known as “metafying” the <k> key.
|
||||
|
||||
The text ‘M-C-k’ is read as 'Meta-Control-k' and describes the
|
||||
character produced by “metafying” ‘C-k’.
|
||||
character produced by metafying ‘C-k’.
|
||||
|
||||
In addition, several keys have their own names. Specifically, <DEL>,
|
||||
<ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves when seen
|
||||
@@ -8523,14 +8548,16 @@ Variable Settings
|
||||
limit is ‘100’.
|
||||
|
||||
‘convert-meta’
|
||||
If set to ‘on’, Readline will convert characters with the
|
||||
eighth bit set to an ASCII key sequence by stripping the
|
||||
If set to ‘on’, Readline will convert characters it reads with
|
||||
the eighth bit set to an ASCII key sequence by stripping the
|
||||
eighth bit and prefixing an <ESC> character, converting them
|
||||
to a meta-prefixed key sequence. The default value is ‘on’,
|
||||
but will be set to ‘off’ if the locale is one that contains
|
||||
eight-bit characters. This variable is dependent on the
|
||||
‘LC_CTYPE’ locale category, and may change if the locale is
|
||||
changed.
|
||||
but Readline will set it to ‘off’ if the locale contains
|
||||
characters whose encodings may include bytes with the eighth
|
||||
bit set. This variable is dependent on the ‘LC_CTYPE’ locale
|
||||
category, and may change if the locale is changed. This
|
||||
variable also affects key bindings; see the description of
|
||||
‘force-meta-prefix’ below.
|
||||
|
||||
‘disable-completion’
|
||||
If set to ‘On’, Readline will inhibit word completion.
|
||||
@@ -8588,13 +8615,30 @@ Variable Settings
|
||||
‘enable-meta-key’
|
||||
When set to ‘on’, Readline will try to enable any meta
|
||||
modifier key the terminal claims to support when it is called.
|
||||
On many terminals, the meta key is used to send eight-bit
|
||||
characters. The default is ‘on’.
|
||||
On many terminals, the Meta key is used to send eight-bit
|
||||
characters; this variable checks for the terminal capability
|
||||
that indicates the terminal can enable and disable a mode that
|
||||
sets the eighth bit of a character (0200) if the Meta key is
|
||||
held down when the character is typed (a meta character). The
|
||||
default is ‘on’.
|
||||
|
||||
‘expand-tilde’
|
||||
If set to ‘on’, tilde expansion is performed when Readline
|
||||
attempts word completion. The default is ‘off’.
|
||||
|
||||
‘force-meta-prefix’
|
||||
If set to ‘on’, Readline modifies its behavior when binding
|
||||
key sequences containing ‘\M-’ or ‘Meta-’ (see ‘Key Bindings’
|
||||
in *note Readline Init File Syntax::) by converting a key
|
||||
sequence of the form ‘\M-’C or ‘Meta-’C to the two-character
|
||||
sequence ‘ESC’C (adding the meta prefix). If
|
||||
‘force-meta-prefix’ is set to ‘off’ (the default), Readline
|
||||
uses the value of the ‘convert-meta’ variable to determine
|
||||
whether to perform this conversion: if ‘convert-meta’ is ‘on’,
|
||||
Readline performs the conversion described above; if it is
|
||||
‘off’, Readline converts C to a meta character by setting the
|
||||
eighth bit (0200). The default is ‘off’.
|
||||
|
||||
‘history-preserve-point’
|
||||
If set to ‘on’, the history code attempts to place the point
|
||||
(the current cursor position) at the same location on each
|
||||
@@ -8624,10 +8668,11 @@ Variable Settings
|
||||
not clear the eighth bit in the characters it reads),
|
||||
regardless of what the terminal claims it can support. The
|
||||
default value is ‘off’, but Readline will set it to ‘on’ if
|
||||
the locale contains eight-bit characters. The name
|
||||
‘meta-flag’ is a synonym for this variable. This variable is
|
||||
dependent on the ‘LC_CTYPE’ locale category, and may change if
|
||||
the locale is changed.
|
||||
the locale contains characters whose encodings may include
|
||||
bytes with the eighth bit set. The name ‘meta-flag’ is a
|
||||
synonym for this variable. This variable is dependent on the
|
||||
‘LC_CTYPE’ locale category, and may change if the locale is
|
||||
changed.
|
||||
|
||||
‘isearch-terminators’
|
||||
The string of characters that should terminate an incremental
|
||||
@@ -8692,9 +8737,10 @@ Variable Settings
|
||||
If set to ‘on’, Readline will display characters with the
|
||||
eighth bit set directly rather than as a meta-prefixed escape
|
||||
sequence. The default is ‘off’, but Readline will set it to
|
||||
‘on’ if the locale contains eight-bit characters. This
|
||||
variable is dependent on the ‘LC_CTYPE’ locale category, and
|
||||
may change if the locale is changed.
|
||||
‘on’ if the locale contains characters whose encodings may
|
||||
include bytes with the eighth bit set. This variable is
|
||||
dependent on the ‘LC_CTYPE’ locale category, and may change if
|
||||
the locale is changed.
|
||||
|
||||
‘page-completions’
|
||||
If set to ‘on’, Readline uses an internal ‘more’-like pager to
|
||||
@@ -8840,7 +8886,10 @@ Key Bindings
|
||||
‘\C-’
|
||||
control prefix
|
||||
‘\M-’
|
||||
meta prefix
|
||||
adding the meta prefix or converting the following character
|
||||
to a meta character, as described above under
|
||||
‘force-meta-prefix’ (see ‘Variable Settings’ in *note Readline
|
||||
Init File Syntax::).
|
||||
‘\e’
|
||||
an escape character
|
||||
‘\\’
|
||||
@@ -12475,29 +12524,31 @@ D.3 Parameter and Variable Index
|
||||
* COPROC: Bash Variables. (line 278)
|
||||
* DIRSTACK: Bash Variables. (line 282)
|
||||
* disable-completion: Readline Init File Syntax.
|
||||
(line 151)
|
||||
(line 153)
|
||||
* echo-control-characters: Readline Init File Syntax.
|
||||
(line 156)
|
||||
(line 158)
|
||||
* editing-mode: Readline Init File Syntax.
|
||||
(line 161)
|
||||
(line 163)
|
||||
* EMACS: Bash Variables. (line 292)
|
||||
* emacs-mode-string: Readline Init File Syntax.
|
||||
(line 167)
|
||||
(line 169)
|
||||
* enable-active-region: Readline Init File Syntax.
|
||||
(line 177)
|
||||
(line 179)
|
||||
* enable-bracketed-paste: Readline Init File Syntax.
|
||||
(line 190)
|
||||
(line 192)
|
||||
* enable-keypad: Readline Init File Syntax.
|
||||
(line 199)
|
||||
(line 201)
|
||||
* ENV: Bash Variables. (line 297)
|
||||
* EPOCHREALTIME: Bash Variables. (line 302)
|
||||
* EPOCHSECONDS: Bash Variables. (line 310)
|
||||
* EUID: Bash Variables. (line 317)
|
||||
* EXECIGNORE: Bash Variables. (line 321)
|
||||
* expand-tilde: Readline Init File Syntax.
|
||||
(line 210)
|
||||
(line 216)
|
||||
* FCEDIT: Bash Variables. (line 334)
|
||||
* FIGNORE: Bash Variables. (line 338)
|
||||
* force-meta-prefix: Readline Init File Syntax.
|
||||
(line 220)
|
||||
* FUNCNAME: Bash Variables. (line 344)
|
||||
* FUNCNEST: Bash Variables. (line 361)
|
||||
* GLOBIGNORE: Bash Variables. (line 366)
|
||||
@@ -12510,15 +12561,15 @@ D.3 Parameter and Variable Index
|
||||
* HISTFILESIZE: Bash Variables. (line 456)
|
||||
* HISTIGNORE: Bash Variables. (line 467)
|
||||
* history-preserve-point: Readline Init File Syntax.
|
||||
(line 214)
|
||||
(line 233)
|
||||
* history-size: Readline Init File Syntax.
|
||||
(line 220)
|
||||
(line 239)
|
||||
* HISTSIZE: Bash Variables. (line 489)
|
||||
* HISTTIMEFORMAT: Bash Variables. (line 496)
|
||||
* HOME: Bourne Shell Variables.
|
||||
(line 13)
|
||||
* horizontal-scroll-mode: Readline Init File Syntax.
|
||||
(line 229)
|
||||
(line 248)
|
||||
* HOSTFILE: Bash Variables. (line 505)
|
||||
* HOSTNAME: Bash Variables. (line 516)
|
||||
* HOSTTYPE: Bash Variables. (line 519)
|
||||
@@ -12526,13 +12577,13 @@ D.3 Parameter and Variable Index
|
||||
(line 18)
|
||||
* IGNOREEOF: Bash Variables. (line 522)
|
||||
* input-meta: Readline Init File Syntax.
|
||||
(line 238)
|
||||
(line 257)
|
||||
* INPUTRC: Bash Variables. (line 532)
|
||||
* INSIDE_EMACS: Bash Variables. (line 536)
|
||||
* isearch-terminators: Readline Init File Syntax.
|
||||
(line 248)
|
||||
(line 268)
|
||||
* keymap: Readline Init File Syntax.
|
||||
(line 255)
|
||||
(line 275)
|
||||
* LANG: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
* LANG <1>: Bash Variables. (line 542)
|
||||
@@ -12554,15 +12605,15 @@ D.3 Parameter and Variable Index
|
||||
(line 27)
|
||||
* MAPFILE: Bash Variables. (line 597)
|
||||
* mark-modified-lines: Readline Init File Syntax.
|
||||
(line 285)
|
||||
(line 305)
|
||||
* mark-symlinked-directories: Readline Init File Syntax.
|
||||
(line 290)
|
||||
(line 310)
|
||||
* match-hidden-files: Readline Init File Syntax.
|
||||
(line 295)
|
||||
(line 315)
|
||||
* menu-complete-display-prefix: Readline Init File Syntax.
|
||||
(line 302)
|
||||
(line 322)
|
||||
* meta-flag: Readline Init File Syntax.
|
||||
(line 238)
|
||||
(line 257)
|
||||
* OLDPWD: Bash Variables. (line 601)
|
||||
* OPTARG: Bourne Shell Variables.
|
||||
(line 34)
|
||||
@@ -12571,9 +12622,9 @@ D.3 Parameter and Variable Index
|
||||
(line 38)
|
||||
* OSTYPE: Bash Variables. (line 608)
|
||||
* output-meta: Readline Init File Syntax.
|
||||
(line 307)
|
||||
(line 327)
|
||||
* page-completions: Readline Init File Syntax.
|
||||
(line 315)
|
||||
(line 336)
|
||||
* PATH: Bourne Shell Variables.
|
||||
(line 42)
|
||||
* PIPESTATUS: Bash Variables. (line 611)
|
||||
@@ -12596,21 +12647,21 @@ D.3 Parameter and Variable Index
|
||||
* READLINE_POINT: Bash Variables. (line 684)
|
||||
* REPLY: Bash Variables. (line 688)
|
||||
* revert-all-at-newline: Readline Init File Syntax.
|
||||
(line 325)
|
||||
(line 346)
|
||||
* search-ignore-case: Readline Init File Syntax.
|
||||
(line 332)
|
||||
(line 353)
|
||||
* SECONDS: Bash Variables. (line 691)
|
||||
* SHELL: Bash Variables. (line 701)
|
||||
* SHELLOPTS: Bash Variables. (line 706)
|
||||
* SHLVL: Bash Variables. (line 715)
|
||||
* show-all-if-ambiguous: Readline Init File Syntax.
|
||||
(line 337)
|
||||
* show-all-if-unmodified: Readline Init File Syntax.
|
||||
(line 343)
|
||||
* show-mode-in-prompt: Readline Init File Syntax.
|
||||
(line 352)
|
||||
* skip-completed-text: Readline Init File Syntax.
|
||||
(line 358)
|
||||
* show-all-if-unmodified: Readline Init File Syntax.
|
||||
(line 364)
|
||||
* show-mode-in-prompt: Readline Init File Syntax.
|
||||
(line 373)
|
||||
* skip-completed-text: Readline Init File Syntax.
|
||||
(line 379)
|
||||
* SRANDOM: Bash Variables. (line 720)
|
||||
* TEXTDOMAIN: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
@@ -12621,11 +12672,11 @@ D.3 Parameter and Variable Index
|
||||
* TMPDIR: Bash Variables. (line 779)
|
||||
* UID: Bash Variables. (line 783)
|
||||
* vi-cmd-mode-string: Readline Init File Syntax.
|
||||
(line 371)
|
||||
(line 392)
|
||||
* vi-ins-mode-string: Readline Init File Syntax.
|
||||
(line 382)
|
||||
(line 403)
|
||||
* visible-stats: Readline Init File Syntax.
|
||||
(line 393)
|
||||
(line 414)
|
||||
|
||||
|
||||
File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
|
||||
@@ -13011,138 +13062,138 @@ D.5 Concept Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top900
|
||||
Node: Introduction2840
|
||||
Node: What is Bash?3056
|
||||
Node: What is a shell?4200
|
||||
Node: Definitions6782
|
||||
Node: Basic Shell Features9961
|
||||
Node: Shell Syntax11184
|
||||
Node: Shell Operation12214
|
||||
Node: Quoting13515
|
||||
Node: Escape Character14831
|
||||
Node: Single Quotes15332
|
||||
Node: Double Quotes15684
|
||||
Node: ANSI-C Quoting17030
|
||||
Node: Locale Translation18418
|
||||
Node: Creating Internationalized Scripts19765
|
||||
Node: Comments23966
|
||||
Node: Shell Commands24604
|
||||
Node: Reserved Words25546
|
||||
Node: Simple Commands26414
|
||||
Node: Pipelines27076
|
||||
Node: Lists30142
|
||||
Node: Compound Commands32017
|
||||
Node: Looping Constructs33029
|
||||
Node: Conditional Constructs35576
|
||||
Node: Command Grouping50400
|
||||
Node: Coprocesses51890
|
||||
Node: GNU Parallel54589
|
||||
Node: Shell Functions55510
|
||||
Node: Shell Parameters63619
|
||||
Node: Positional Parameters68155
|
||||
Node: Special Parameters69093
|
||||
Node: Shell Expansions72402
|
||||
Node: Brace Expansion74594
|
||||
Node: Tilde Expansion77260
|
||||
Node: Shell Parameter Expansion80029
|
||||
Node: Command Substitution99139
|
||||
Node: Arithmetic Expansion102675
|
||||
Node: Process Substitution103643
|
||||
Node: Word Splitting104783
|
||||
Node: Filename Expansion106927
|
||||
Node: Pattern Matching110026
|
||||
Node: Quote Removal115262
|
||||
Node: Redirections115569
|
||||
Node: Executing Commands125381
|
||||
Node: Simple Command Expansion126051
|
||||
Node: Command Search and Execution128165
|
||||
Node: Command Execution Environment130576
|
||||
Node: Environment133888
|
||||
Node: Exit Status135595
|
||||
Node: Signals137383
|
||||
Node: Shell Scripts141000
|
||||
Node: Shell Builtin Commands144095
|
||||
Node: Bourne Shell Builtins146209
|
||||
Node: Bash Builtins170982
|
||||
Node: Modifying Shell Behavior206084
|
||||
Node: The Set Builtin206429
|
||||
Node: The Shopt Builtin218015
|
||||
Node: Special Builtins234980
|
||||
Node: Shell Variables235972
|
||||
Node: Bourne Shell Variables236409
|
||||
Node: Bash Variables238605
|
||||
Node: Bash Features275803
|
||||
Node: Invoking Bash276820
|
||||
Node: Bash Startup Files283222
|
||||
Node: Interactive Shells288528
|
||||
Node: What is an Interactive Shell?288939
|
||||
Node: Is this Shell Interactive?289608
|
||||
Node: Interactive Shell Behavior290435
|
||||
Node: Bash Conditional Expressions294192
|
||||
Node: Shell Arithmetic299369
|
||||
Node: Aliases302454
|
||||
Node: Arrays305412
|
||||
Node: The Directory Stack312214
|
||||
Node: Directory Stack Builtins313014
|
||||
Node: Controlling the Prompt317466
|
||||
Node: The Restricted Shell320607
|
||||
Node: Bash POSIX Mode323397
|
||||
Node: Shell Compatibility Mode340911
|
||||
Node: Job Control349681
|
||||
Node: Job Control Basics350141
|
||||
Node: Job Control Builtins355318
|
||||
Node: Job Control Variables361265
|
||||
Node: Command Line Editing362445
|
||||
Node: Introduction and Notation364152
|
||||
Node: Readline Interaction365799
|
||||
Node: Readline Bare Essentials366990
|
||||
Node: Readline Movement Commands368811
|
||||
Node: Readline Killing Commands369811
|
||||
Node: Readline Arguments371792
|
||||
Node: Searching372852
|
||||
Node: Readline Init File375084
|
||||
Node: Readline Init File Syntax376369
|
||||
Node: Conditional Init Constructs401310
|
||||
Node: Sample Init File405678
|
||||
Node: Bindable Readline Commands408802
|
||||
Node: Commands For Moving410030
|
||||
Node: Commands For History412260
|
||||
Node: Commands For Text417468
|
||||
Node: Commands For Killing421605
|
||||
Node: Numeric Arguments424409
|
||||
Node: Commands For Completion425564
|
||||
Node: Keyboard Macros429883
|
||||
Node: Miscellaneous Commands430587
|
||||
Node: Readline vi Mode437244
|
||||
Node: Programmable Completion438199
|
||||
Node: Programmable Completion Builtins446159
|
||||
Node: A Programmable Completion Example457728
|
||||
Node: Using History Interactively463076
|
||||
Node: Bash History Facilities463760
|
||||
Node: Bash History Builtins466875
|
||||
Node: History Interaction472121
|
||||
Node: Event Designators476449
|
||||
Node: Word Designators478035
|
||||
Node: Modifiers480190
|
||||
Node: Installing Bash482102
|
||||
Node: Basic Installation483239
|
||||
Node: Compilers and Options487121
|
||||
Node: Compiling For Multiple Architectures487874
|
||||
Node: Installation Names489626
|
||||
Node: Specifying the System Type491863
|
||||
Node: Sharing Defaults492612
|
||||
Node: Operation Controls493329
|
||||
Node: Optional Features494351
|
||||
Node: Reporting Bugs506156
|
||||
Node: Major Differences From The Bourne Shell507508
|
||||
Node: GNU Free Documentation License527246
|
||||
Node: Indexes552426
|
||||
Node: Builtin Index552880
|
||||
Node: Reserved Word Index559981
|
||||
Node: Variable Index562429
|
||||
Node: Function Index579563
|
||||
Node: Concept Index593422
|
||||
Node: Top904
|
||||
Node: Introduction2848
|
||||
Node: What is Bash?3064
|
||||
Node: What is a shell?4208
|
||||
Node: Definitions6790
|
||||
Node: Basic Shell Features9969
|
||||
Node: Shell Syntax11192
|
||||
Node: Shell Operation12222
|
||||
Node: Quoting13523
|
||||
Node: Escape Character14839
|
||||
Node: Single Quotes15340
|
||||
Node: Double Quotes15692
|
||||
Node: ANSI-C Quoting17038
|
||||
Node: Locale Translation18426
|
||||
Node: Creating Internationalized Scripts19773
|
||||
Node: Comments23974
|
||||
Node: Shell Commands24612
|
||||
Node: Reserved Words25554
|
||||
Node: Simple Commands26422
|
||||
Node: Pipelines27084
|
||||
Node: Lists30150
|
||||
Node: Compound Commands32025
|
||||
Node: Looping Constructs33037
|
||||
Node: Conditional Constructs35584
|
||||
Node: Command Grouping50448
|
||||
Node: Coprocesses51938
|
||||
Node: GNU Parallel54637
|
||||
Node: Shell Functions55558
|
||||
Node: Shell Parameters63667
|
||||
Node: Positional Parameters68203
|
||||
Node: Special Parameters69141
|
||||
Node: Shell Expansions72454
|
||||
Node: Brace Expansion74646
|
||||
Node: Tilde Expansion77312
|
||||
Node: Shell Parameter Expansion80081
|
||||
Node: Command Substitution99191
|
||||
Node: Arithmetic Expansion102727
|
||||
Node: Process Substitution103695
|
||||
Node: Word Splitting104835
|
||||
Node: Filename Expansion106979
|
||||
Node: Pattern Matching110078
|
||||
Node: Quote Removal115314
|
||||
Node: Redirections115621
|
||||
Node: Executing Commands125433
|
||||
Node: Simple Command Expansion126103
|
||||
Node: Command Search and Execution128217
|
||||
Node: Command Execution Environment130628
|
||||
Node: Environment133940
|
||||
Node: Exit Status135647
|
||||
Node: Signals137435
|
||||
Node: Shell Scripts141052
|
||||
Node: Shell Builtin Commands144147
|
||||
Node: Bourne Shell Builtins146261
|
||||
Node: Bash Builtins171034
|
||||
Node: Modifying Shell Behavior206136
|
||||
Node: The Set Builtin206481
|
||||
Node: The Shopt Builtin218067
|
||||
Node: Special Builtins235032
|
||||
Node: Shell Variables236024
|
||||
Node: Bourne Shell Variables236461
|
||||
Node: Bash Variables238657
|
||||
Node: Bash Features275855
|
||||
Node: Invoking Bash276872
|
||||
Node: Bash Startup Files283274
|
||||
Node: Interactive Shells288580
|
||||
Node: What is an Interactive Shell?288991
|
||||
Node: Is this Shell Interactive?289660
|
||||
Node: Interactive Shell Behavior290487
|
||||
Node: Bash Conditional Expressions294244
|
||||
Node: Shell Arithmetic299421
|
||||
Node: Aliases302506
|
||||
Node: Arrays305464
|
||||
Node: The Directory Stack312266
|
||||
Node: Directory Stack Builtins313066
|
||||
Node: Controlling the Prompt317518
|
||||
Node: The Restricted Shell320659
|
||||
Node: Bash POSIX Mode323449
|
||||
Node: Shell Compatibility Mode341501
|
||||
Node: Job Control350455
|
||||
Node: Job Control Basics350915
|
||||
Node: Job Control Builtins356215
|
||||
Node: Job Control Variables362162
|
||||
Node: Command Line Editing363342
|
||||
Node: Introduction and Notation365049
|
||||
Node: Readline Interaction367147
|
||||
Node: Readline Bare Essentials368338
|
||||
Node: Readline Movement Commands370159
|
||||
Node: Readline Killing Commands371159
|
||||
Node: Readline Arguments373140
|
||||
Node: Searching374200
|
||||
Node: Readline Init File376432
|
||||
Node: Readline Init File Syntax377717
|
||||
Node: Conditional Init Constructs404260
|
||||
Node: Sample Init File408628
|
||||
Node: Bindable Readline Commands411752
|
||||
Node: Commands For Moving412980
|
||||
Node: Commands For History415210
|
||||
Node: Commands For Text420418
|
||||
Node: Commands For Killing424555
|
||||
Node: Numeric Arguments427359
|
||||
Node: Commands For Completion428514
|
||||
Node: Keyboard Macros432833
|
||||
Node: Miscellaneous Commands433537
|
||||
Node: Readline vi Mode440194
|
||||
Node: Programmable Completion441149
|
||||
Node: Programmable Completion Builtins449109
|
||||
Node: A Programmable Completion Example460678
|
||||
Node: Using History Interactively466026
|
||||
Node: Bash History Facilities466710
|
||||
Node: Bash History Builtins469825
|
||||
Node: History Interaction475071
|
||||
Node: Event Designators479399
|
||||
Node: Word Designators480985
|
||||
Node: Modifiers483140
|
||||
Node: Installing Bash485052
|
||||
Node: Basic Installation486189
|
||||
Node: Compilers and Options490071
|
||||
Node: Compiling For Multiple Architectures490824
|
||||
Node: Installation Names492576
|
||||
Node: Specifying the System Type494813
|
||||
Node: Sharing Defaults495562
|
||||
Node: Operation Controls496279
|
||||
Node: Optional Features497301
|
||||
Node: Reporting Bugs509106
|
||||
Node: Major Differences From The Bourne Shell510458
|
||||
Node: GNU Free Documentation License530196
|
||||
Node: Indexes555376
|
||||
Node: Builtin Index555830
|
||||
Node: Reserved Word Index562931
|
||||
Node: Variable Index565379
|
||||
Node: Function Index582654
|
||||
Node: Concept Index596513
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
+14
-5
@@ -1873,8 +1873,7 @@ expand to nothing (i.e., they are removed).
|
||||
|
||||
@item ?
|
||||
@vindex $?
|
||||
($?) Expands to the exit status of the most recently executed foreground
|
||||
command.
|
||||
($?) Expands to the exit status of the most recently executed command.
|
||||
|
||||
@item -
|
||||
@vindex $-
|
||||
@@ -8545,8 +8544,16 @@ is stopped is `Stopped(@var{signame})', where @var{signame} is, for
|
||||
example, @code{SIGTSTP}.
|
||||
|
||||
@item
|
||||
Bash does not perform job notifications between executing commands in
|
||||
lists separated by @samp{;} or newline in interactive shells.
|
||||
If the shell is interactive, Bash does not perform job notifications
|
||||
between executing commands in lists separated by @samp{;} or newline.
|
||||
Non-interactive shells print status messages after a foreground job in
|
||||
a list completes.
|
||||
|
||||
@item
|
||||
If the shell is interactive, Bash waits until the next prompt before
|
||||
printing the status of a background job that changes status or a foreground
|
||||
job that terminates due to a signal.
|
||||
Non-interactive shells print status messages after a foreground job completes.
|
||||
|
||||
@item
|
||||
Alias expansion is always enabled, even in non-interactive shells.
|
||||
@@ -9236,7 +9243,9 @@ job 1 in the background, equivalent to @samp{bg %1}
|
||||
The shell learns immediately whenever a job changes state.
|
||||
Normally, Bash waits until it is about to print a prompt
|
||||
before reporting changes in a job's status so as to not interrupt
|
||||
any other output.
|
||||
any other output,
|
||||
though it will notify of changes in a job's status after a command in
|
||||
a list completes, before executing the next command.
|
||||
If the @option{-b} option to the @code{set} builtin is enabled,
|
||||
Bash reports such changes immediately (@pxref{The Set Builtin}).
|
||||
Any trap on @code{SIGCHLD} is executed for each child process
|
||||
|
||||
+3
-3
@@ -2,10 +2,10 @@
|
||||
Copyright (C) 1988-2024 Free Software Foundation, Inc.
|
||||
@end ignore
|
||||
|
||||
@set LASTCHANGE Mon Aug 26 11:29:52 EDT 2024
|
||||
@set LASTCHANGE Thu Sep 5 15:41:56 EDT 2024
|
||||
|
||||
@set EDITION 5.3
|
||||
@set VERSION 5.3
|
||||
|
||||
@set UPDATED 26 August 2024
|
||||
@set UPDATED-MONTH August 2024
|
||||
@set UPDATED 5 September 2024
|
||||
@set UPDATED-MONTH September 2024
|
||||
|
||||
@@ -348,7 +348,7 @@ parse_command (void)
|
||||
if (interactive && bash_input.type != st_string && parser_expanding_alias() == 0)
|
||||
{
|
||||
#if defined (JOB_CONTROL)
|
||||
notify_and_cleanup ();
|
||||
notify_and_cleanup (-1);
|
||||
#endif
|
||||
#if defined (READLINE)
|
||||
if (no_line_editing || (bash_input.type == st_stdin && parser_will_prompt ()))
|
||||
|
||||
+1
-1
@@ -2863,7 +2863,7 @@ execute_connection (COMMAND *command, int asynchronous, int pipe_in, int pipe_ou
|
||||
QUIT;
|
||||
#if defined (JOB_CONTROL)
|
||||
if (command->value.Connection->connector == ';' && job_control && interactive && posixly_correct == 0)
|
||||
notify_and_cleanup ();
|
||||
notify_and_cleanup (-1);
|
||||
#endif
|
||||
optimize_connection_fork (command); /* XXX */
|
||||
exec_result = execute_command_internal (command->value.Connection->second,
|
||||
|
||||
+1
-1
@@ -86,7 +86,7 @@ extern int locale_utf8locale; /* XXX */
|
||||
#define UTF8_SINGLEBYTE(c) (1)
|
||||
#define UTF8_MBFIRSTCHAR(c) (0)
|
||||
|
||||
#defined VALID_SINGLEBYTE_CHAR(c) (1)
|
||||
#define VALID_SINGLEBYTE_CHAR(c) (1)
|
||||
|
||||
#endif /* !HANDLE_MULTIBYTE */
|
||||
|
||||
|
||||
@@ -277,7 +277,8 @@ static WAIT raw_job_exit_status (int);
|
||||
|
||||
static int job_killed_by_signal (int);
|
||||
|
||||
static void notify_of_job_status (void);
|
||||
static inline void maybe_print_job_notifications (int);
|
||||
static void notify_of_job_status (int);
|
||||
static void reset_job_indices (void);
|
||||
static void cleanup_dead_jobs (void);
|
||||
static int processes_in_job (int);
|
||||
@@ -3373,7 +3374,8 @@ if (job == NO_JOB)
|
||||
the shell is not interactive, make sure we turn on the notify bit
|
||||
so we don't get an unwanted message about the job's termination,
|
||||
and so delete_job really clears the slot in the jobs table. */
|
||||
notify_and_cleanup ();
|
||||
if (posixly_correct == 0 || (interactive_shell == 0 || interactive == 0))
|
||||
notify_and_cleanup (job);
|
||||
}
|
||||
|
||||
wait_for_return:
|
||||
@@ -3471,7 +3473,11 @@ return_job:
|
||||
}
|
||||
if (jobs_list_frozen == 0) /* must be running a funsub to get here */
|
||||
{
|
||||
notify_of_job_status (); /* XXX */
|
||||
#if 1
|
||||
notify_of_job_status (i); /* XXX */
|
||||
#else
|
||||
maybe_print_job_notifications (i);
|
||||
#endif
|
||||
|
||||
/* kre@munnari.oz.au 01/30/2024 */
|
||||
delete_job (i, posixly_correct ? DEL_NOBGPID : 0);
|
||||
@@ -3607,17 +3613,15 @@ return_procsub:
|
||||
/* Print info about dead jobs, and then delete them from the list
|
||||
of known jobs. This does not actually delete jobs when the
|
||||
shell is not interactive, because the dead jobs are not marked
|
||||
as notified. */
|
||||
as notified.
|
||||
If JOB is >= 0, only print info about that job and then clean it up. */
|
||||
void
|
||||
notify_and_cleanup (void)
|
||||
notify_and_cleanup (int job)
|
||||
{
|
||||
if (jobs_list_frozen > 0)
|
||||
return;
|
||||
|
||||
if (want_job_notifications || interactive || interactive_shell == 0)
|
||||
notify_of_job_status ();
|
||||
else if (interactive_shell && sourcelevel && shell_compatibility_level <= 52)
|
||||
notify_of_job_status (); /* XXX - was not dependent on BASH_COMPAT */
|
||||
maybe_print_job_notifications (job);
|
||||
|
||||
if (jobs_list_frozen < 0)
|
||||
return; /* status changes only */
|
||||
@@ -4239,7 +4243,7 @@ itrace("waitchld: waitpid returns %d block = %d children_exited = %d", pid, bloc
|
||||
that this process belongs to is no longer running, then notify the user
|
||||
of that fact now. */
|
||||
if (children_exited && asynchronous_notification && interactive && executing_builtin == 0)
|
||||
notify_of_job_status ();
|
||||
notify_of_job_status (-1);
|
||||
|
||||
return (children_exited);
|
||||
}
|
||||
@@ -4497,11 +4501,13 @@ run_sigchld_trap (int nchild)
|
||||
}
|
||||
|
||||
/* Function to call when you want to notify people of changes
|
||||
in job status. This prints out all jobs which are pending
|
||||
notification to stderr, and marks those printed as already
|
||||
notified, thus making them candidates for cleanup. */
|
||||
in job status. This prints out all requested jobs which are
|
||||
pending notification to stderr, and marks those printed as
|
||||
notified, thus making them candidates for cleanup.
|
||||
if WANTED is >=0, we print information only about that job;
|
||||
otherwise we print all jobs whose status has changed. */
|
||||
static void
|
||||
notify_of_job_status (void)
|
||||
notify_of_job_status (int wanted)
|
||||
{
|
||||
register int job, termsig;
|
||||
char *dir;
|
||||
@@ -4525,6 +4531,9 @@ notify_of_job_status (void)
|
||||
/* XXX could use js.j_firstj here */
|
||||
for (job = 0, dir = NULL; job < js.j_jobslots; job++)
|
||||
{
|
||||
if (wanted >= 0 && job != wanted)
|
||||
continue;
|
||||
|
||||
if (jobs[job] && IS_NOTIFIED (job) == 0)
|
||||
{
|
||||
s = raw_job_exit_status (job);
|
||||
@@ -4671,6 +4680,19 @@ internal_debug("notify_of_job_status: catch-all setting J_NOTIFIED on job %d (%d
|
||||
queue_sigchld--;
|
||||
}
|
||||
|
||||
/* Use this to determine when to conditionally print job notifications. We
|
||||
print notifications if another part of the shell forces it, if we are
|
||||
currently interactive, or if we are not an interactive shell. For
|
||||
compatibility, we can also print notifications if we are sourcing a file
|
||||
in an interactive shell.
|
||||
In a separate inline function so the conditions are in one place. */
|
||||
static inline void
|
||||
maybe_print_job_notifications (int job)
|
||||
{
|
||||
if (want_job_notifications || interactive || interactive_shell == 0)
|
||||
notify_of_job_status (job);
|
||||
}
|
||||
|
||||
/* Initialize the job control mechanism, and set up the tty stuff. */
|
||||
int
|
||||
initialize_job_control (int force)
|
||||
|
||||
@@ -312,7 +312,7 @@ extern int wait_for_any_job (int, struct procstat *);
|
||||
|
||||
extern void wait_sigint_cleanup (void);
|
||||
|
||||
extern void notify_and_cleanup (void);
|
||||
extern void notify_and_cleanup (int);
|
||||
extern void reap_dead_jobs (void);
|
||||
extern int start_job (int, int);
|
||||
extern int kill_pid (pid_t, int, int);
|
||||
|
||||
@@ -647,6 +647,7 @@ history_truncate_file (const char *fname, int lines)
|
||||
truncate_write:
|
||||
tempname = history_tempfile (filename);
|
||||
|
||||
rv = 0;
|
||||
if ((file = open (tempname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0600)) != -1)
|
||||
{
|
||||
if (write (file, bp, chars_read - (bp - buffer)) < 0)
|
||||
|
||||
@@ -2493,7 +2493,7 @@ shell_getc (int remove_quoted_newline)
|
||||
of a trap, when the trap is called from flush_child. This call
|
||||
had better not cause jobs to disappear from the job table in
|
||||
that case, or we will have big trouble. */
|
||||
notify_and_cleanup ();
|
||||
notify_and_cleanup (-1);
|
||||
#else /* !JOB_CONTROL */
|
||||
cleanup_dead_jobs ();
|
||||
#endif /* !JOB_CONTROL */
|
||||
|
||||
Reference in New Issue
Block a user