for characters that need $'...' printing over shell metacharacters
so that strings containing both get the $'...' treatment
From a report by Grisha Levit <grishalevit@gmail.com>
+
+ 6/27
+ ----
+subst.c
+ - skip_double_quoted: make sure to call extract_function_subst with
+ the SX_NOALLOC flag
+ From a report by Grisha Levit <grishalevit@gmail.com>
+
+trap.c
+ - _run_trap_internal: if we're running a trap but shell_eof_token is
+ set, this means we're somehow running a trap while parsing a
+ command substitution (weird set of circumstances). Call
+ reset_parser and unset shell_eof_token if shell_eof_token is set
+ From a report by Wiley Young <wyeth2485@gmail.com>
+
+builtins/setattr.def
+ - set_var_attribute: don't set the att_propagate attribute unless the
+ variable whose attribute is being modified is in the temporary
+ environment for this builtin, not any previous temporary environments
+ (like the temp env for a function call, or a special builtin like
+ `.')
+
+variables.c
+ - push_posix_temp_var: if we have an array variable we're trying to
+ push up here, use arrayvar_copyval to copy the value correctly
+
+arrayfunc.c
+ - arrayvar_copyval: make sure that V2 ends up being the same type of
+ array as V1 (att_array or att_assoc), since we're copying the value.
+ Fixes issue reported by Grisha Levit <grishalevit@gmail.com>, but
+ with the previous fix to set_var_attribute, it's not needed
+ - assign_compound_array_list: check for integer overflow if the max
+ index of the array is already INT_MAX.
+ From a report from Emanuele Torre <torreemanuele6@gmail.com>
+
+ 6/28
+ ----
+pcomplete.c,bashline.c
+ - uw_restore_parser_state,uw_rl_set_signals: move to bashline.c so the
+ general readline support can use them
+
+bashline.h
+ - uw_restore_parser_state,uw_rl_set_signals: extern declarations
+
+bashline.c
+ - unset_readline_variables,uw_unset_readline_variables: function to
+ unset READLINE_{LINE,POINT,MARK,ARGUMENT} and its unwind-protect
+ counterpart
+ - bash_execute_unix_command: add unwind-protect to free up allocated
+ memory
+ Report and patch by Grisha Levit <grishalevit@gmail.com>
+
+doc/bash.1,doc/bashref.texi
+ - BASH_ARGC,BASH_ARGV,BASH_SOURCE,BASH_LINENO: note that these variables
+ may not be assigned to or unset
arrayvar_copyval (SHELL_VAR *v1, SHELL_VAR *v2)
{
FREE (value_cell (v2));
+ VUNSETATTR (v2, (att_array | att_assoc));
if (array_p (v1))
- var_setarray (v2, array_copy (array_cell (v1)));
+ {
+ var_setarray (v2, array_copy (array_cell (v1)));
+ VSETATTR (v2, att_array);
+ }
else if (assoc_p (v1))
- var_setassoc (v2, assoc_copy (assoc_cell (v1)));
+ {
+ var_setassoc (v2, assoc_copy (assoc_cell (v1)));
+ VSETATTR (v2, att_assoc);
+ }
return v2;
}
}
last_ind = (a && (flags & ASS_APPEND)) ? array_max_index (a) + 1 : 0;
+ if (a && last_ind < 0) /* overflow */
+ {
+ char *num;
+ num = itos (last_ind);
+ report_error ("%s[%s]: %s", var->name, num, bash_badsub_errmsg);
+ free (num);
+ return;
+ }
+
#if ASSOC_KVPAIR_ASSIGNMENT
if (assoc_p (var) && kvpair_assignment_p (nlist))
{
}
}
+void
+uw_restore_parser_state (void *ps)
+{
+ restore_parser_state (ps);
+}
+
+void
+uw_rl_set_signals (void *ignore)
+{
+ rl_set_signals ();
+}
+
+static void
+unbind_readline_variables (void)
+{
+ check_unbind_variable ("READLINE_LINE");
+ check_unbind_variable ("READLINE_POINT");
+ check_unbind_variable ("READLINE_MARK");
+ check_unbind_variable ("READLINE_ARGUMENT");
+ array_needs_making = 1;
+}
+
+static void
+uw_unbind_readline_variables (void *ignore)
+{
+ unbind_readline_variables ();
+}
+
int
bash_execute_unix_command (int count, int key)
{
}
array_needs_making = 1;
+ begin_unwind_frame ("execute-unix-command");
save_parser_state (&ps);
rl_clear_signals ();
+ add_unwind_protect (uw_unbind_readline_variables, 0);
+ add_unwind_protect (uw_restore_parser_state, &ps);
+ add_unwind_protect (uw_rl_set_signals, 0);
r = parse_and_execute (savestring (cmd), "bash_execute_unix_command", SEVAL_NOHIST);
rl_set_signals ();
restore_parser_state (&ps);
if (v && legal_number (value_cell (v), &mi))
readline_set_char_offset (mi, &rl_mark);
- check_unbind_variable ("READLINE_LINE");
- check_unbind_variable ("READLINE_POINT");
- check_unbind_variable ("READLINE_MARK");
- check_unbind_variable ("READLINE_ARGUMENT");
- array_needs_making = 1;
+ unbind_readline_variables ();
+ discard_unwind_frame ("execute-unix-command");
/* and restore the readline buffer and display after command execution. */
/* If we clear the last line of the prompt above, redraw only that last
extern void bashline_set_event_hook (void);
extern void bashline_reset_event_hook (void);
+extern void uw_restore_parser_state (void *);
+extern void uw_rl_set_signals (void *);
+
extern int bind_keyseq_to_unix_command (char *);
extern int bash_execute_unix_command (int, int);
extern int print_unix_command_map (void);
This file is setattr.def, from which is created setattr.c.
It implements the builtins "export" and "readonly", in Bash.
-Copyright (C) 1987-2022 Free Software Foundation, Inc.
+Copyright (C) 1987-2023 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
{
/* var=value readonly var */
tv = find_tempenv_variable (name);
- /* XXX -- need to handle case where tv is a temp variable in a
- function-scope context, since function_env has been merged into
- the local variables table. */
if (tv && tempvar_p (tv))
{
tvalue = var_isset (tv) ? savestring (value_cell (tv)) : savestring ("");
}
else
{
+ /* Handle case where var is a temp variable in a function-scope
+ context, since function_env has been merged into the local
+ variables table (see below). */
var = find_variable_notempenv (name);
if (var == 0)
{
if (var)
VSETATTR (var, att_invisible);
}
+ /* We don't want to do this for local variables or variables we found
+ in previous temporary environment contexts. */
+#if 0
else if (var->context != 0 && local_p (var) == 0)
+#else
+ else if (var->context != 0 && local_p (var) == 0 && tempvar_p (var) == 0)
+#endif
VSETATTR (var, att_propagate);
}
}
tion to the s\bsh\bho\bop\bpt\bt builtin below). Setting e\bex\bxt\btd\bde\beb\bbu\bug\bg after the
shell has started to execute a script, or referencing this vari-
able when e\bex\bxt\btd\bde\beb\bbu\bug\bg is not set, may result in inconsistent val-
- ues.
+ ues. Assignments to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC have no effect, and it may not be
+ unset.
B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
- An array variable containing all of the parameters in the cur-
+ An array variable containing all of the parameters in the cur-
rent b\bba\bas\bsh\bh execution call stack. The final parameter of the last
- subroutine call is at the top of the stack; the first parameter
+ subroutine call is at the top of the stack; the first parameter
of the initial call is at the bottom. When a subroutine is exe-
- cuted, the parameters supplied are pushed onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV. The
- shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging mode (see
- the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the s\bsh\bho\bop\bpt\bt builtin be-
+ cuted, the parameters supplied are pushed onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV. The
+ shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging mode (see
+ the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the s\bsh\bho\bop\bpt\bt builtin be-
low). Setting e\bex\bxt\btd\bde\beb\bbu\bug\bg after the shell has started to execute a
- script, or referencing this variable when e\bex\bxt\btd\bde\beb\bbu\bug\bg is not set,
- may result in inconsistent values.
+ script, or referencing this variable when e\bex\bxt\btd\bde\beb\bbu\bug\bg is not set,
+ may result in inconsistent values. Assignments to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
+ have no effect, and it may not be unset.
B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0
When referenced, this variable expands to the name of the shell
or shell script (identical to $\b$0\b0; see the description of special
$\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b} is the line number in the source file
($\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}) where $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} was called (or
$\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b} if referenced within another shell func-
- tion). Use L\bLI\bIN\bNE\bEN\bNO\bO to obtain the current line number.
+ tion). Use L\bLI\bIN\bNE\bEN\bNO\bO to obtain the current line number. Assign-
+ ments to B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO have no effect, and it may not be unset.
B\bBA\bAS\bSH\bH_\b_L\bLO\bOA\bAD\bDA\bAB\bBL\bLE\bES\bS_\b_P\bPA\bAT\bTH\bH
- A colon-separated list of directories in which the shell looks
- for dynamically loadable builtins specified by the e\ben\bna\bab\bbl\ble\be com-
+ A colon-separated list of directories in which the shell looks
+ for dynamically loadable builtins specified by the e\ben\bna\bab\bbl\ble\be com-
mand.
B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH
- An array variable whose members are assigned by the =\b=~\b~ binary
- operator to the [\b[[\b[ conditional command. The element with index
- 0 is the portion of the string matching the entire regular ex-
+ An array variable whose members are assigned by the =\b=~\b~ binary
+ operator to the [\b[[\b[ conditional command. The element with index
+ 0 is the portion of the string matching the entire regular ex-
pression. The element with index _\bn is the portion of the string
matching the _\bnth parenthesized subexpression.
B\bBA\bAS\bSH\bH_\b_M\bMO\bON\bNO\bOS\bSE\bEC\bCO\bON\bND\bDS\bS
- Each time this variable is referenced, it expands to the value
- returned by the system's monotonic clock, if one is available.
- If there is no monotonic clock, this is equivalent to E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bC-\b-
- O\bON\bND\bDS\bS. If B\bBA\bAS\bSH\bH_\b_M\bMO\bON\bNO\bOS\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special prop-
+ Each time this variable is referenced, it expands to the value
+ returned by the system's monotonic clock, if one is available.
+ If there is no monotonic clock, this is equivalent to E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bC-\b-
+ O\bON\bND\bDS\bS. If B\bBA\bAS\bSH\bH_\b_M\bMO\bON\bNO\bOS\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special prop-
erties, even if it is subsequently reset.
B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE
- An array variable whose members are the source filenames where
- the corresponding shell function names in the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE array
+ An array variable whose members are the source filenames where
+ the corresponding shell function names in the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE array
variable are defined. The shell function $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} is de-
- fined in the file $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b} and called from
- $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}.
+ fined in the file $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b} and called from
+ $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}. Assignments to B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE have no ef-
+ fect, and it may not be unset.
B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bBS\bSH\bHE\bEL\bLL\bL
Incremented by one within each subshell or subshell environment
when the shell begins executing in that environment. The ini-
-GNU Bash 5.3 2023 June 16 BASH(1)
+GNU Bash 5.3 2023 June 28 BASH(1)
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
-.\" Last Change: Fri Jun 16 11:36:28 EDT 2023
+.\" Last Change: Wed Jun 28 14:06:27 EDT 2023
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
-.TH BASH 1 "2023 June 16" "GNU Bash 5.3"
+.TH BASH 1 "2023 June 28" "GNU Bash 5.3"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
Setting \fBextdebug\fP after the shell has started to execute a script,
or referencing this variable when \fBextdebug\fP is not set,
may result in inconsistent values.
+Assignments to
+.SM
+.B BASH_ARGC
+have no effect, and it may not be unset.
.TP
.B BASH_ARGV
An array variable containing all of the parameters in the current \fBbash\fP
Setting \fBextdebug\fP after the shell has started to execute a script,
or referencing this variable when \fBextdebug\fP is not set,
may result in inconsistent values.
+Assignments to
+.SM
+.B BASH_ARGV
+have no effect, and it may not be unset.
.TP
.B BASH_ARGV0
When referenced, this variable expands to the name of the shell or shell
.SM
.B LINENO
to obtain the current line number.
+Assignments to
+.SM
+.B BASH_LINENO
+have no effect, and it may not be unset.
.TP
.B BASH_LOADABLES_PATH
A colon-separated list of directories in which the shell looks for
\fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP is defined in the file
\fB${BASH_SOURCE[\fP\fI$i\fP\fB]}\fP and called from
\fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP.
+Assignments to
+.SM
+.B BASH_SOURCE
+have no effect, and it may not be unset.
.TP
.B BASH_SUBSHELL
Incremented by one within each subshell or subshell environment when
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
-<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2023 June 16<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2023 June 28<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
Setting <B>extdebug</B> after the shell has started to execute a script,
or referencing this variable when <B>extdebug</B> is not set,
may result in inconsistent values.
+Assignments to
+<FONT SIZE=-1><B>BASH_ARGC</B>
+
+</FONT>
+have no effect, and it may not be unset.
<DT><B>BASH_ARGV</B>
<DD>
Setting <B>extdebug</B> after the shell has started to execute a script,
or referencing this variable when <B>extdebug</B> is not set,
may result in inconsistent values.
+Assignments to
+<FONT SIZE=-1><B>BASH_ARGV</B>
+
+</FONT>
+have no effect, and it may not be unset.
<DT><B>BASH_ARGV0</B>
<DD>
</FONT>
to obtain the current line number.
+Assignments to
+<FONT SIZE=-1><B>BASH_LINENO</B>
+
+</FONT>
+have no effect, and it may not be unset.
<DT><B>BASH_LOADABLES_PATH</B>
<DD>
<B>${FUNCNAME[</B><I>$i</I><B>]}</B> is defined in the file
<B>${BASH_SOURCE[</B><I>$i</I><B>]}</B> and called from
<B>${BASH_SOURCE[</B><I>$i+1</I><B>]}</B>.
+Assignments to
+<FONT SIZE=-1><B>BASH_SOURCE</B>
+
+</FONT>
+have no effect, and it may not be unset.
<DT><B>BASH_SUBSHELL</B>
<DD>
<HR>
<TABLE WIDTH=100%>
<TR>
-<TH ALIGN=LEFT width=33%>GNU Bash 5.3<TH ALIGN=CENTER width=33%>2023 June 16<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>GNU Bash 5.3<TH ALIGN=CENTER width=33%>2023 June 28<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
<DT><A HREF="#lbDI">BUGS</A><DD>
</DL>
<HR>
-This document was created by man2html from /usr/local/src/bash/bash-20230616/doc/bash.1.<BR>
-Time: 16 June 2023 12:13:33 EDT
+This document was created by man2html from /usr/local/src/bash/bash-20230626/doc/bash.1.<BR>
+Time: 28 June 2023 14:10:33 EDT
</BODY>
</HTML>
This is bash.info, produced by makeinfo version 6.8 from bashref.texi.
This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 16 June 2023).
+Bash shell (version 5.3, 28 June 2023).
- This is Edition 5.3, last updated 16 June 2023, of 'The GNU Bash
+ This is Edition 5.3, last updated 28 June 2023, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.3.
Copyright (C) 1988-2023 Free Software Foundation, Inc.
*************
This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 16 June 2023). The Bash home page is
+Bash shell (version 5.3, 28 June 2023). The Bash home page is
<http://www.gnu.org/software/bash/>.
- This is Edition 5.3, last updated 16 June 2023, of 'The GNU Bash
+ This is Edition 5.3, last updated 28 June 2023, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.3.
Bash contains features that appear in other popular shells, and some
the 'extdebug' option to the 'shopt' builtin). Setting 'extdebug'
after the shell has started to execute a script, or referencing
this variable when 'extdebug' is not set, may result in
- inconsistent values.
+ inconsistent values. Assignments to 'BASH_ARGC' have no effect,
+ and it may not be unset.
'BASH_ARGV'
An array variable containing all of the parameters in the current
the 'shopt' builtin). Setting 'extdebug' after the shell has
started to execute a script, or referencing this variable when
'extdebug' is not set, may result in inconsistent values.
+ Assignments to 'BASH_ARGV' have no effect, and it may not be unset.
'BASH_ARGV0'
When referenced, this variable expands to the name of the shell or
('${BASH_SOURCE[$i+1]}') where '${FUNCNAME[$i]}' was called (or
'${BASH_LINENO[$i-1]}' if referenced within another shell
function). Use 'LINENO' to obtain the current line number.
+ Assignments to 'BASH_LINENO' have no effect, and it may not be
+ unset.
'BASH_LOADABLES_PATH'
A colon-separated list of directories in which the shell looks for
corresponding shell function names in the 'FUNCNAME' array variable
are defined. The shell function '${FUNCNAME[$i]}' is defined in
the file '${BASH_SOURCE[$i]}' and called from
- '${BASH_SOURCE[$i+1]}'
+ '${BASH_SOURCE[$i+1]}' Assignments to 'BASH_SOURCE' have no effect,
+ and it may not be unset.
'BASH_SUBSHELL'
Incremented by one within each subshell or subshell environment
* BASHPID: Bash Variables. (line 35)
* BASH_ALIASES: Bash Variables. (line 42)
* BASH_ARGC: Bash Variables. (line 51)
-* BASH_ARGV: Bash Variables. (line 64)
-* BASH_ARGV0: Bash Variables. (line 76)
-* BASH_CMDS: Bash Variables. (line 84)
-* BASH_COMMAND: Bash Variables. (line 93)
-* BASH_COMPAT: Bash Variables. (line 100)
-* BASH_ENV: Bash Variables. (line 116)
-* BASH_EXECUTION_STRING: Bash Variables. (line 122)
-* BASH_LINENO: Bash Variables. (line 125)
-* BASH_LOADABLES_PATH: Bash Variables. (line 133)
-* BASH_MONOSECONDS: Bash Variables. (line 137)
-* BASH_REMATCH: Bash Variables. (line 144)
-* BASH_SOURCE: Bash Variables. (line 152)
-* BASH_SUBSHELL: Bash Variables. (line 159)
-* BASH_TRAPSIG: Bash Variables. (line 165)
-* BASH_VERSINFO: Bash Variables. (line 171)
-* BASH_VERSION: Bash Variables. (line 194)
-* BASH_XTRACEFD: Bash Variables. (line 197)
+* BASH_ARGV: Bash Variables. (line 65)
+* BASH_ARGV0: Bash Variables. (line 78)
+* BASH_CMDS: Bash Variables. (line 86)
+* BASH_COMMAND: Bash Variables. (line 95)
+* BASH_COMPAT: Bash Variables. (line 102)
+* BASH_ENV: Bash Variables. (line 118)
+* BASH_EXECUTION_STRING: Bash Variables. (line 124)
+* BASH_LINENO: Bash Variables. (line 127)
+* BASH_LOADABLES_PATH: Bash Variables. (line 137)
+* BASH_MONOSECONDS: Bash Variables. (line 141)
+* BASH_REMATCH: Bash Variables. (line 148)
+* BASH_SOURCE: Bash Variables. (line 156)
+* BASH_SUBSHELL: Bash Variables. (line 164)
+* BASH_TRAPSIG: Bash Variables. (line 170)
+* BASH_VERSINFO: Bash Variables. (line 176)
+* BASH_VERSION: Bash Variables. (line 199)
+* BASH_XTRACEFD: Bash Variables. (line 202)
* bell-style: Readline Init File Syntax.
(line 64)
* bind-tty-special-chars: Readline Init File Syntax.
(line 76)
* CDPATH: Bourne Shell Variables.
(line 9)
-* CHILD_MAX: Bash Variables. (line 208)
+* CHILD_MAX: Bash Variables. (line 213)
* colored-completion-prefix: Readline Init File Syntax.
(line 81)
* colored-stats: Readline Init File Syntax.
(line 91)
-* COLUMNS: Bash Variables. (line 215)
+* COLUMNS: Bash Variables. (line 220)
* comment-begin: Readline Init File Syntax.
(line 97)
* completion-display-width: Readline Init File Syntax.
(line 120)
* completion-query-items: Readline Init File Syntax.
(line 127)
-* COMPREPLY: Bash Variables. (line 267)
-* COMP_CWORD: Bash Variables. (line 221)
-* COMP_KEY: Bash Variables. (line 250)
-* COMP_LINE: Bash Variables. (line 227)
-* COMP_POINT: Bash Variables. (line 232)
-* COMP_TYPE: Bash Variables. (line 240)
-* COMP_WORDBREAKS: Bash Variables. (line 254)
-* COMP_WORDS: Bash Variables. (line 260)
+* COMPREPLY: Bash Variables. (line 272)
+* COMP_CWORD: Bash Variables. (line 226)
+* COMP_KEY: Bash Variables. (line 255)
+* COMP_LINE: Bash Variables. (line 232)
+* COMP_POINT: Bash Variables. (line 237)
+* COMP_TYPE: Bash Variables. (line 245)
+* COMP_WORDBREAKS: Bash Variables. (line 259)
+* COMP_WORDS: Bash Variables. (line 265)
* convert-meta: Readline Init File Syntax.
(line 138)
-* COPROC: Bash Variables. (line 273)
-* DIRSTACK: Bash Variables. (line 277)
+* COPROC: Bash Variables. (line 278)
+* DIRSTACK: Bash Variables. (line 282)
* disable-completion: Readline Init File Syntax.
(line 148)
* echo-control-characters: Readline Init File Syntax.
(line 153)
* editing-mode: Readline Init File Syntax.
(line 158)
-* EMACS: Bash Variables. (line 287)
+* EMACS: Bash Variables. (line 292)
* emacs-mode-string: Readline Init File Syntax.
(line 164)
* enable-active-region: Readline Init File Syntax.
(line 187)
* enable-keypad: Readline Init File Syntax.
(line 196)
-* ENV: Bash Variables. (line 292)
-* EPOCHREALTIME: Bash Variables. (line 297)
-* EPOCHSECONDS: Bash Variables. (line 305)
-* EUID: Bash Variables. (line 312)
-* EXECIGNORE: Bash Variables. (line 316)
+* 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 207)
-* FCEDIT: Bash Variables. (line 329)
-* FIGNORE: Bash Variables. (line 333)
-* FUNCNAME: Bash Variables. (line 339)
-* FUNCNEST: Bash Variables. (line 356)
-* GLOBIGNORE: Bash Variables. (line 361)
-* GLOBSORT: Bash Variables. (line 368)
-* GROUPS: Bash Variables. (line 394)
-* histchars: Bash Variables. (line 400)
-* HISTCMD: Bash Variables. (line 415)
-* HISTCONTROL: Bash Variables. (line 421)
-* HISTFILE: Bash Variables. (line 437)
-* HISTFILESIZE: Bash Variables. (line 441)
-* HISTIGNORE: Bash Variables. (line 452)
+* FCEDIT: Bash Variables. (line 334)
+* FIGNORE: Bash Variables. (line 338)
+* FUNCNAME: Bash Variables. (line 344)
+* FUNCNEST: Bash Variables. (line 361)
+* GLOBIGNORE: Bash Variables. (line 366)
+* GLOBSORT: Bash Variables. (line 373)
+* GROUPS: Bash Variables. (line 399)
+* histchars: Bash Variables. (line 405)
+* HISTCMD: Bash Variables. (line 420)
+* HISTCONTROL: Bash Variables. (line 426)
+* HISTFILE: Bash Variables. (line 442)
+* HISTFILESIZE: Bash Variables. (line 446)
+* HISTIGNORE: Bash Variables. (line 457)
* history-preserve-point: Readline Init File Syntax.
(line 211)
* history-size: Readline Init File Syntax.
(line 217)
-* HISTSIZE: Bash Variables. (line 472)
-* HISTTIMEFORMAT: Bash Variables. (line 479)
+* HISTSIZE: Bash Variables. (line 477)
+* HISTTIMEFORMAT: Bash Variables. (line 484)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 226)
-* HOSTFILE: Bash Variables. (line 487)
-* HOSTNAME: Bash Variables. (line 498)
-* HOSTTYPE: Bash Variables. (line 501)
+* HOSTFILE: Bash Variables. (line 492)
+* HOSTNAME: Bash Variables. (line 503)
+* HOSTTYPE: Bash Variables. (line 506)
* IFS: Bourne Shell Variables.
(line 18)
-* IGNOREEOF: Bash Variables. (line 504)
+* IGNOREEOF: Bash Variables. (line 509)
* input-meta: Readline Init File Syntax.
(line 235)
-* INPUTRC: Bash Variables. (line 514)
-* INSIDE_EMACS: Bash Variables. (line 518)
+* INPUTRC: Bash Variables. (line 519)
+* INSIDE_EMACS: Bash Variables. (line 523)
* isearch-terminators: Readline Init File Syntax.
(line 245)
* keymap: Readline Init File Syntax.
(line 252)
* LANG: Creating Internationalized Scripts.
(line 51)
-* LANG <1>: Bash Variables. (line 524)
-* LC_ALL: Bash Variables. (line 528)
-* LC_COLLATE: Bash Variables. (line 532)
-* LC_CTYPE: Bash Variables. (line 539)
+* LANG <1>: Bash Variables. (line 529)
+* LC_ALL: Bash Variables. (line 533)
+* LC_COLLATE: Bash Variables. (line 537)
+* LC_CTYPE: Bash Variables. (line 544)
* LC_MESSAGES: Creating Internationalized Scripts.
(line 51)
-* LC_MESSAGES <1>: Bash Variables. (line 544)
-* LC_NUMERIC: Bash Variables. (line 548)
-* LC_TIME: Bash Variables. (line 552)
-* LINENO: Bash Variables. (line 556)
-* LINES: Bash Variables. (line 561)
-* MACHTYPE: Bash Variables. (line 567)
+* LC_MESSAGES <1>: Bash Variables. (line 549)
+* LC_NUMERIC: Bash Variables. (line 553)
+* LC_TIME: Bash Variables. (line 557)
+* LINENO: Bash Variables. (line 561)
+* LINES: Bash Variables. (line 566)
+* MACHTYPE: Bash Variables. (line 572)
* MAIL: Bourne Shell Variables.
(line 22)
-* MAILCHECK: Bash Variables. (line 571)
+* MAILCHECK: Bash Variables. (line 576)
* MAILPATH: Bourne Shell Variables.
(line 27)
-* MAPFILE: Bash Variables. (line 579)
+* MAPFILE: Bash Variables. (line 584)
* mark-modified-lines: Readline Init File Syntax.
(line 282)
* mark-symlinked-directories: Readline Init File Syntax.
(line 299)
* meta-flag: Readline Init File Syntax.
(line 235)
-* OLDPWD: Bash Variables. (line 583)
+* OLDPWD: Bash Variables. (line 588)
* OPTARG: Bourne Shell Variables.
(line 34)
-* OPTERR: Bash Variables. (line 586)
+* OPTERR: Bash Variables. (line 591)
* OPTIND: Bourne Shell Variables.
(line 38)
-* OSTYPE: Bash Variables. (line 590)
+* OSTYPE: Bash Variables. (line 595)
* output-meta: Readline Init File Syntax.
(line 304)
* page-completions: Readline Init File Syntax.
(line 312)
* PATH: Bourne Shell Variables.
(line 42)
-* PIPESTATUS: Bash Variables. (line 593)
-* POSIXLY_CORRECT: Bash Variables. (line 598)
-* PPID: Bash Variables. (line 608)
-* PROMPT_COMMAND: Bash Variables. (line 612)
-* PROMPT_DIRTRIM: Bash Variables. (line 618)
-* PS0: Bash Variables. (line 624)
+* PIPESTATUS: Bash Variables. (line 598)
+* POSIXLY_CORRECT: Bash Variables. (line 603)
+* PPID: Bash Variables. (line 613)
+* PROMPT_COMMAND: Bash Variables. (line 617)
+* PROMPT_DIRTRIM: Bash Variables. (line 623)
+* PS0: Bash Variables. (line 629)
* PS1: Bourne Shell Variables.
(line 48)
* PS2: Bourne Shell Variables.
(line 53)
-* PS3: Bash Variables. (line 629)
-* PS4: Bash Variables. (line 634)
-* PWD: Bash Variables. (line 642)
-* RANDOM: Bash Variables. (line 645)
-* READLINE_ARGUMENT: Bash Variables. (line 651)
-* READLINE_LINE: Bash Variables. (line 655)
-* READLINE_MARK: Bash Variables. (line 659)
-* READLINE_POINT: Bash Variables. (line 665)
-* REPLY: Bash Variables. (line 669)
+* PS3: Bash Variables. (line 634)
+* PS4: Bash Variables. (line 639)
+* PWD: Bash Variables. (line 647)
+* RANDOM: Bash Variables. (line 650)
+* READLINE_ARGUMENT: Bash Variables. (line 656)
+* READLINE_LINE: Bash Variables. (line 660)
+* READLINE_MARK: Bash Variables. (line 664)
+* READLINE_POINT: Bash Variables. (line 670)
+* REPLY: Bash Variables. (line 674)
* revert-all-at-newline: Readline Init File Syntax.
(line 322)
* search-ignore-case: Readline Init File Syntax.
(line 329)
-* SECONDS: Bash Variables. (line 672)
-* SHELL: Bash Variables. (line 681)
-* SHELLOPTS: Bash Variables. (line 686)
-* SHLVL: Bash Variables. (line 695)
+* SECONDS: Bash Variables. (line 677)
+* SHELL: Bash Variables. (line 686)
+* SHELLOPTS: Bash Variables. (line 691)
+* SHLVL: Bash Variables. (line 700)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 334)
* show-all-if-unmodified: Readline Init File Syntax.
(line 349)
* skip-completed-text: Readline Init File Syntax.
(line 355)
-* SRANDOM: Bash Variables. (line 700)
+* SRANDOM: Bash Variables. (line 705)
* TEXTDOMAIN: Creating Internationalized Scripts.
(line 51)
* TEXTDOMAINDIR: Creating Internationalized Scripts.
(line 51)
-* TIMEFORMAT: Bash Variables. (line 709)
-* TMOUT: Bash Variables. (line 747)
-* TMPDIR: Bash Variables. (line 759)
-* UID: Bash Variables. (line 763)
+* TIMEFORMAT: Bash Variables. (line 714)
+* TMOUT: Bash Variables. (line 752)
+* TMPDIR: Bash Variables. (line 764)
+* UID: Bash Variables. (line 768)
* vi-cmd-mode-string: Readline Init File Syntax.
(line 368)
* vi-ins-mode-string: Readline Init File Syntax.
Node: Shell Variables\7f224157
Node: Bourne Shell Variables\7f224591
Node: Bash Variables\7f226692
-Node: Bash Features\7f261344
-Node: Invoking Bash\7f262354
-Node: Bash Startup Files\7f268364
-Node: Interactive Shells\7f273492
-Node: What is an Interactive Shell?\7f273900
-Node: Is this Shell Interactive?\7f274546
-Node: Interactive Shell Behavior\7f275358
-Node: Bash Conditional Expressions\7f278984
-Node: Shell Arithmetic\7f283623
-Node: Aliases\7f286581
-Node: Arrays\7f289472
-Node: The Directory Stack\7f296032
-Node: Directory Stack Builtins\7f296813
-Node: Controlling the Prompt\7f301070
-Node: The Restricted Shell\7f304032
-Node: Bash POSIX Mode\7f306639
-Node: Shell Compatibility Mode\7f322552
-Node: Job Control\7f330793
-Node: Job Control Basics\7f331250
-Node: Job Control Builtins\7f336249
-Node: Job Control Variables\7f342041
-Node: Command Line Editing\7f343194
-Node: Introduction and Notation\7f344862
-Node: Readline Interaction\7f346482
-Node: Readline Bare Essentials\7f347670
-Node: Readline Movement Commands\7f349456
-Node: Readline Killing Commands\7f350413
-Node: Readline Arguments\7f352331
-Node: Searching\7f353372
-Node: Readline Init File\7f355555
-Node: Readline Init File Syntax\7f356813
-Node: Conditional Init Constructs\7f380601
-Node: Sample Init File\7f384794
-Node: Bindable Readline Commands\7f387915
-Node: Commands For Moving\7f389116
-Node: Commands For History\7f391164
-Node: Commands For Text\7f396155
-Node: Commands For Killing\7f399801
-Node: Numeric Arguments\7f402831
-Node: Commands For Completion\7f403967
-Node: Keyboard Macros\7f408155
-Node: Miscellaneous Commands\7f408840
-Node: Readline vi Mode\7f414875
-Node: Programmable Completion\7f415779
-Node: Programmable Completion Builtins\7f423556
-Node: A Programmable Completion Example\7f434673
-Node: Using History Interactively\7f439918
-Node: Bash History Facilities\7f440599
-Node: Bash History Builtins\7f443601
-Node: History Interaction\7f448622
-Node: Event Designators\7f452239
-Node: Word Designators\7f453590
-Node: Modifiers\7f455347
-Node: Installing Bash\7f457152
-Node: Basic Installation\7f458286
-Node: Compilers and Options\7f462005
-Node: Compiling For Multiple Architectures\7f462743
-Node: Installation Names\7f464432
-Node: Specifying the System Type\7f466538
-Node: Sharing Defaults\7f467252
-Node: Operation Controls\7f467922
-Node: Optional Features\7f468877
-Node: Reporting Bugs\7f480093
-Node: Major Differences From The Bourne Shell\7f481424
-Node: GNU Free Documentation License\7f498270
-Node: Indexes\7f523444
-Node: Builtin Index\7f523895
-Node: Reserved Word Index\7f530993
-Node: Variable Index\7f533438
-Node: Function Index\7f550569
-Node: Concept Index\7f564350
+Node: Bash Features\7f261646
+Node: Invoking Bash\7f262656
+Node: Bash Startup Files\7f268666
+Node: Interactive Shells\7f273794
+Node: What is an Interactive Shell?\7f274202
+Node: Is this Shell Interactive?\7f274848
+Node: Interactive Shell Behavior\7f275660
+Node: Bash Conditional Expressions\7f279286
+Node: Shell Arithmetic\7f283925
+Node: Aliases\7f286883
+Node: Arrays\7f289774
+Node: The Directory Stack\7f296334
+Node: Directory Stack Builtins\7f297115
+Node: Controlling the Prompt\7f301372
+Node: The Restricted Shell\7f304334
+Node: Bash POSIX Mode\7f306941
+Node: Shell Compatibility Mode\7f322854
+Node: Job Control\7f331095
+Node: Job Control Basics\7f331552
+Node: Job Control Builtins\7f336551
+Node: Job Control Variables\7f342343
+Node: Command Line Editing\7f343496
+Node: Introduction and Notation\7f345164
+Node: Readline Interaction\7f346784
+Node: Readline Bare Essentials\7f347972
+Node: Readline Movement Commands\7f349758
+Node: Readline Killing Commands\7f350715
+Node: Readline Arguments\7f352633
+Node: Searching\7f353674
+Node: Readline Init File\7f355857
+Node: Readline Init File Syntax\7f357115
+Node: Conditional Init Constructs\7f380903
+Node: Sample Init File\7f385096
+Node: Bindable Readline Commands\7f388217
+Node: Commands For Moving\7f389418
+Node: Commands For History\7f391466
+Node: Commands For Text\7f396457
+Node: Commands For Killing\7f400103
+Node: Numeric Arguments\7f403133
+Node: Commands For Completion\7f404269
+Node: Keyboard Macros\7f408457
+Node: Miscellaneous Commands\7f409142
+Node: Readline vi Mode\7f415177
+Node: Programmable Completion\7f416081
+Node: Programmable Completion Builtins\7f423858
+Node: A Programmable Completion Example\7f434975
+Node: Using History Interactively\7f440220
+Node: Bash History Facilities\7f440901
+Node: Bash History Builtins\7f443903
+Node: History Interaction\7f448924
+Node: Event Designators\7f452541
+Node: Word Designators\7f453892
+Node: Modifiers\7f455649
+Node: Installing Bash\7f457454
+Node: Basic Installation\7f458588
+Node: Compilers and Options\7f462307
+Node: Compiling For Multiple Architectures\7f463045
+Node: Installation Names\7f464734
+Node: Specifying the System Type\7f466840
+Node: Sharing Defaults\7f467554
+Node: Operation Controls\7f468224
+Node: Optional Features\7f469179
+Node: Reporting Bugs\7f480395
+Node: Major Differences From The Bourne Shell\7f481726
+Node: GNU Free Documentation License\7f498572
+Node: Indexes\7f523746
+Node: Builtin Index\7f524197
+Node: Reserved Word Index\7f531295
+Node: Variable Index\7f533740
+Node: Function Index\7f550871
+Node: Concept Index\7f564652
\1f
End Tag Table
bashref.texi.
This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 16 June 2023).
+Bash shell (version 5.3, 28 June 2023).
- This is Edition 5.3, last updated 16 June 2023, of 'The GNU Bash
+ This is Edition 5.3, last updated 28 June 2023, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.3.
Copyright (C) 1988-2023 Free Software Foundation, Inc.
*************
This text is a brief description of the features that are present in the
-Bash shell (version 5.3, 16 June 2023). The Bash home page is
+Bash shell (version 5.3, 28 June 2023). The Bash home page is
<http://www.gnu.org/software/bash/>.
- This is Edition 5.3, last updated 16 June 2023, of 'The GNU Bash
+ This is Edition 5.3, last updated 28 June 2023, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.3.
Bash contains features that appear in other popular shells, and some
the 'extdebug' option to the 'shopt' builtin). Setting 'extdebug'
after the shell has started to execute a script, or referencing
this variable when 'extdebug' is not set, may result in
- inconsistent values.
+ inconsistent values. Assignments to 'BASH_ARGC' have no effect,
+ and it may not be unset.
'BASH_ARGV'
An array variable containing all of the parameters in the current
the 'shopt' builtin). Setting 'extdebug' after the shell has
started to execute a script, or referencing this variable when
'extdebug' is not set, may result in inconsistent values.
+ Assignments to 'BASH_ARGV' have no effect, and it may not be unset.
'BASH_ARGV0'
When referenced, this variable expands to the name of the shell or
('${BASH_SOURCE[$i+1]}') where '${FUNCNAME[$i]}' was called (or
'${BASH_LINENO[$i-1]}' if referenced within another shell
function). Use 'LINENO' to obtain the current line number.
+ Assignments to 'BASH_LINENO' have no effect, and it may not be
+ unset.
'BASH_LOADABLES_PATH'
A colon-separated list of directories in which the shell looks for
corresponding shell function names in the 'FUNCNAME' array variable
are defined. The shell function '${FUNCNAME[$i]}' is defined in
the file '${BASH_SOURCE[$i]}' and called from
- '${BASH_SOURCE[$i+1]}'
+ '${BASH_SOURCE[$i+1]}' Assignments to 'BASH_SOURCE' have no effect,
+ and it may not be unset.
'BASH_SUBSHELL'
Incremented by one within each subshell or subshell environment
* BASHPID: Bash Variables. (line 35)
* BASH_ALIASES: Bash Variables. (line 42)
* BASH_ARGC: Bash Variables. (line 51)
-* BASH_ARGV: Bash Variables. (line 64)
-* BASH_ARGV0: Bash Variables. (line 76)
-* BASH_CMDS: Bash Variables. (line 84)
-* BASH_COMMAND: Bash Variables. (line 93)
-* BASH_COMPAT: Bash Variables. (line 100)
-* BASH_ENV: Bash Variables. (line 116)
-* BASH_EXECUTION_STRING: Bash Variables. (line 122)
-* BASH_LINENO: Bash Variables. (line 125)
-* BASH_LOADABLES_PATH: Bash Variables. (line 133)
-* BASH_MONOSECONDS: Bash Variables. (line 137)
-* BASH_REMATCH: Bash Variables. (line 144)
-* BASH_SOURCE: Bash Variables. (line 152)
-* BASH_SUBSHELL: Bash Variables. (line 159)
-* BASH_TRAPSIG: Bash Variables. (line 165)
-* BASH_VERSINFO: Bash Variables. (line 171)
-* BASH_VERSION: Bash Variables. (line 194)
-* BASH_XTRACEFD: Bash Variables. (line 197)
+* BASH_ARGV: Bash Variables. (line 65)
+* BASH_ARGV0: Bash Variables. (line 78)
+* BASH_CMDS: Bash Variables. (line 86)
+* BASH_COMMAND: Bash Variables. (line 95)
+* BASH_COMPAT: Bash Variables. (line 102)
+* BASH_ENV: Bash Variables. (line 118)
+* BASH_EXECUTION_STRING: Bash Variables. (line 124)
+* BASH_LINENO: Bash Variables. (line 127)
+* BASH_LOADABLES_PATH: Bash Variables. (line 137)
+* BASH_MONOSECONDS: Bash Variables. (line 141)
+* BASH_REMATCH: Bash Variables. (line 148)
+* BASH_SOURCE: Bash Variables. (line 156)
+* BASH_SUBSHELL: Bash Variables. (line 164)
+* BASH_TRAPSIG: Bash Variables. (line 170)
+* BASH_VERSINFO: Bash Variables. (line 176)
+* BASH_VERSION: Bash Variables. (line 199)
+* BASH_XTRACEFD: Bash Variables. (line 202)
* bell-style: Readline Init File Syntax.
(line 64)
* bind-tty-special-chars: Readline Init File Syntax.
(line 76)
* CDPATH: Bourne Shell Variables.
(line 9)
-* CHILD_MAX: Bash Variables. (line 208)
+* CHILD_MAX: Bash Variables. (line 213)
* colored-completion-prefix: Readline Init File Syntax.
(line 81)
* colored-stats: Readline Init File Syntax.
(line 91)
-* COLUMNS: Bash Variables. (line 215)
+* COLUMNS: Bash Variables. (line 220)
* comment-begin: Readline Init File Syntax.
(line 97)
* completion-display-width: Readline Init File Syntax.
(line 120)
* completion-query-items: Readline Init File Syntax.
(line 127)
-* COMPREPLY: Bash Variables. (line 267)
-* COMP_CWORD: Bash Variables. (line 221)
-* COMP_KEY: Bash Variables. (line 250)
-* COMP_LINE: Bash Variables. (line 227)
-* COMP_POINT: Bash Variables. (line 232)
-* COMP_TYPE: Bash Variables. (line 240)
-* COMP_WORDBREAKS: Bash Variables. (line 254)
-* COMP_WORDS: Bash Variables. (line 260)
+* COMPREPLY: Bash Variables. (line 272)
+* COMP_CWORD: Bash Variables. (line 226)
+* COMP_KEY: Bash Variables. (line 255)
+* COMP_LINE: Bash Variables. (line 232)
+* COMP_POINT: Bash Variables. (line 237)
+* COMP_TYPE: Bash Variables. (line 245)
+* COMP_WORDBREAKS: Bash Variables. (line 259)
+* COMP_WORDS: Bash Variables. (line 265)
* convert-meta: Readline Init File Syntax.
(line 138)
-* COPROC: Bash Variables. (line 273)
-* DIRSTACK: Bash Variables. (line 277)
+* COPROC: Bash Variables. (line 278)
+* DIRSTACK: Bash Variables. (line 282)
* disable-completion: Readline Init File Syntax.
(line 148)
* echo-control-characters: Readline Init File Syntax.
(line 153)
* editing-mode: Readline Init File Syntax.
(line 158)
-* EMACS: Bash Variables. (line 287)
+* EMACS: Bash Variables. (line 292)
* emacs-mode-string: Readline Init File Syntax.
(line 164)
* enable-active-region: Readline Init File Syntax.
(line 187)
* enable-keypad: Readline Init File Syntax.
(line 196)
-* ENV: Bash Variables. (line 292)
-* EPOCHREALTIME: Bash Variables. (line 297)
-* EPOCHSECONDS: Bash Variables. (line 305)
-* EUID: Bash Variables. (line 312)
-* EXECIGNORE: Bash Variables. (line 316)
+* 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 207)
-* FCEDIT: Bash Variables. (line 329)
-* FIGNORE: Bash Variables. (line 333)
-* FUNCNAME: Bash Variables. (line 339)
-* FUNCNEST: Bash Variables. (line 356)
-* GLOBIGNORE: Bash Variables. (line 361)
-* GLOBSORT: Bash Variables. (line 368)
-* GROUPS: Bash Variables. (line 394)
-* histchars: Bash Variables. (line 400)
-* HISTCMD: Bash Variables. (line 415)
-* HISTCONTROL: Bash Variables. (line 421)
-* HISTFILE: Bash Variables. (line 437)
-* HISTFILESIZE: Bash Variables. (line 441)
-* HISTIGNORE: Bash Variables. (line 452)
+* FCEDIT: Bash Variables. (line 334)
+* FIGNORE: Bash Variables. (line 338)
+* FUNCNAME: Bash Variables. (line 344)
+* FUNCNEST: Bash Variables. (line 361)
+* GLOBIGNORE: Bash Variables. (line 366)
+* GLOBSORT: Bash Variables. (line 373)
+* GROUPS: Bash Variables. (line 399)
+* histchars: Bash Variables. (line 405)
+* HISTCMD: Bash Variables. (line 420)
+* HISTCONTROL: Bash Variables. (line 426)
+* HISTFILE: Bash Variables. (line 442)
+* HISTFILESIZE: Bash Variables. (line 446)
+* HISTIGNORE: Bash Variables. (line 457)
* history-preserve-point: Readline Init File Syntax.
(line 211)
* history-size: Readline Init File Syntax.
(line 217)
-* HISTSIZE: Bash Variables. (line 472)
-* HISTTIMEFORMAT: Bash Variables. (line 479)
+* HISTSIZE: Bash Variables. (line 477)
+* HISTTIMEFORMAT: Bash Variables. (line 484)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 226)
-* HOSTFILE: Bash Variables. (line 487)
-* HOSTNAME: Bash Variables. (line 498)
-* HOSTTYPE: Bash Variables. (line 501)
+* HOSTFILE: Bash Variables. (line 492)
+* HOSTNAME: Bash Variables. (line 503)
+* HOSTTYPE: Bash Variables. (line 506)
* IFS: Bourne Shell Variables.
(line 18)
-* IGNOREEOF: Bash Variables. (line 504)
+* IGNOREEOF: Bash Variables. (line 509)
* input-meta: Readline Init File Syntax.
(line 235)
-* INPUTRC: Bash Variables. (line 514)
-* INSIDE_EMACS: Bash Variables. (line 518)
+* INPUTRC: Bash Variables. (line 519)
+* INSIDE_EMACS: Bash Variables. (line 523)
* isearch-terminators: Readline Init File Syntax.
(line 245)
* keymap: Readline Init File Syntax.
(line 252)
* LANG: Creating Internationalized Scripts.
(line 51)
-* LANG <1>: Bash Variables. (line 524)
-* LC_ALL: Bash Variables. (line 528)
-* LC_COLLATE: Bash Variables. (line 532)
-* LC_CTYPE: Bash Variables. (line 539)
+* LANG <1>: Bash Variables. (line 529)
+* LC_ALL: Bash Variables. (line 533)
+* LC_COLLATE: Bash Variables. (line 537)
+* LC_CTYPE: Bash Variables. (line 544)
* LC_MESSAGES: Creating Internationalized Scripts.
(line 51)
-* LC_MESSAGES <1>: Bash Variables. (line 544)
-* LC_NUMERIC: Bash Variables. (line 548)
-* LC_TIME: Bash Variables. (line 552)
-* LINENO: Bash Variables. (line 556)
-* LINES: Bash Variables. (line 561)
-* MACHTYPE: Bash Variables. (line 567)
+* LC_MESSAGES <1>: Bash Variables. (line 549)
+* LC_NUMERIC: Bash Variables. (line 553)
+* LC_TIME: Bash Variables. (line 557)
+* LINENO: Bash Variables. (line 561)
+* LINES: Bash Variables. (line 566)
+* MACHTYPE: Bash Variables. (line 572)
* MAIL: Bourne Shell Variables.
(line 22)
-* MAILCHECK: Bash Variables. (line 571)
+* MAILCHECK: Bash Variables. (line 576)
* MAILPATH: Bourne Shell Variables.
(line 27)
-* MAPFILE: Bash Variables. (line 579)
+* MAPFILE: Bash Variables. (line 584)
* mark-modified-lines: Readline Init File Syntax.
(line 282)
* mark-symlinked-directories: Readline Init File Syntax.
(line 299)
* meta-flag: Readline Init File Syntax.
(line 235)
-* OLDPWD: Bash Variables. (line 583)
+* OLDPWD: Bash Variables. (line 588)
* OPTARG: Bourne Shell Variables.
(line 34)
-* OPTERR: Bash Variables. (line 586)
+* OPTERR: Bash Variables. (line 591)
* OPTIND: Bourne Shell Variables.
(line 38)
-* OSTYPE: Bash Variables. (line 590)
+* OSTYPE: Bash Variables. (line 595)
* output-meta: Readline Init File Syntax.
(line 304)
* page-completions: Readline Init File Syntax.
(line 312)
* PATH: Bourne Shell Variables.
(line 42)
-* PIPESTATUS: Bash Variables. (line 593)
-* POSIXLY_CORRECT: Bash Variables. (line 598)
-* PPID: Bash Variables. (line 608)
-* PROMPT_COMMAND: Bash Variables. (line 612)
-* PROMPT_DIRTRIM: Bash Variables. (line 618)
-* PS0: Bash Variables. (line 624)
+* PIPESTATUS: Bash Variables. (line 598)
+* POSIXLY_CORRECT: Bash Variables. (line 603)
+* PPID: Bash Variables. (line 613)
+* PROMPT_COMMAND: Bash Variables. (line 617)
+* PROMPT_DIRTRIM: Bash Variables. (line 623)
+* PS0: Bash Variables. (line 629)
* PS1: Bourne Shell Variables.
(line 48)
* PS2: Bourne Shell Variables.
(line 53)
-* PS3: Bash Variables. (line 629)
-* PS4: Bash Variables. (line 634)
-* PWD: Bash Variables. (line 642)
-* RANDOM: Bash Variables. (line 645)
-* READLINE_ARGUMENT: Bash Variables. (line 651)
-* READLINE_LINE: Bash Variables. (line 655)
-* READLINE_MARK: Bash Variables. (line 659)
-* READLINE_POINT: Bash Variables. (line 665)
-* REPLY: Bash Variables. (line 669)
+* PS3: Bash Variables. (line 634)
+* PS4: Bash Variables. (line 639)
+* PWD: Bash Variables. (line 647)
+* RANDOM: Bash Variables. (line 650)
+* READLINE_ARGUMENT: Bash Variables. (line 656)
+* READLINE_LINE: Bash Variables. (line 660)
+* READLINE_MARK: Bash Variables. (line 664)
+* READLINE_POINT: Bash Variables. (line 670)
+* REPLY: Bash Variables. (line 674)
* revert-all-at-newline: Readline Init File Syntax.
(line 322)
* search-ignore-case: Readline Init File Syntax.
(line 329)
-* SECONDS: Bash Variables. (line 672)
-* SHELL: Bash Variables. (line 681)
-* SHELLOPTS: Bash Variables. (line 686)
-* SHLVL: Bash Variables. (line 695)
+* SECONDS: Bash Variables. (line 677)
+* SHELL: Bash Variables. (line 686)
+* SHELLOPTS: Bash Variables. (line 691)
+* SHLVL: Bash Variables. (line 700)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 334)
* show-all-if-unmodified: Readline Init File Syntax.
(line 349)
* skip-completed-text: Readline Init File Syntax.
(line 355)
-* SRANDOM: Bash Variables. (line 700)
+* SRANDOM: Bash Variables. (line 705)
* TEXTDOMAIN: Creating Internationalized Scripts.
(line 51)
* TEXTDOMAINDIR: Creating Internationalized Scripts.
(line 51)
-* TIMEFORMAT: Bash Variables. (line 709)
-* TMOUT: Bash Variables. (line 747)
-* TMPDIR: Bash Variables. (line 759)
-* UID: Bash Variables. (line 763)
+* TIMEFORMAT: Bash Variables. (line 714)
+* TMOUT: Bash Variables. (line 752)
+* TMPDIR: Bash Variables. (line 764)
+* UID: Bash Variables. (line 768)
* vi-cmd-mode-string: Readline Init File Syntax.
(line 368)
* vi-ins-mode-string: Readline Init File Syntax.
Node: Shell Variables\7f224334
Node: Bourne Shell Variables\7f224771
Node: Bash Variables\7f226875
-Node: Bash Features\7f261530
-Node: Invoking Bash\7f262543
-Node: Bash Startup Files\7f268556
-Node: Interactive Shells\7f273687
-Node: What is an Interactive Shell?\7f274098
-Node: Is this Shell Interactive?\7f274747
-Node: Interactive Shell Behavior\7f275562
-Node: Bash Conditional Expressions\7f279191
-Node: Shell Arithmetic\7f283833
-Node: Aliases\7f286794
-Node: Arrays\7f289688
-Node: The Directory Stack\7f296251
-Node: Directory Stack Builtins\7f297035
-Node: Controlling the Prompt\7f301295
-Node: The Restricted Shell\7f304260
-Node: Bash POSIX Mode\7f306870
-Node: Shell Compatibility Mode\7f322786
-Node: Job Control\7f331030
-Node: Job Control Basics\7f331490
-Node: Job Control Builtins\7f336492
-Node: Job Control Variables\7f342287
-Node: Command Line Editing\7f343443
-Node: Introduction and Notation\7f345114
-Node: Readline Interaction\7f346737
-Node: Readline Bare Essentials\7f347928
-Node: Readline Movement Commands\7f349717
-Node: Readline Killing Commands\7f350677
-Node: Readline Arguments\7f352598
-Node: Searching\7f353642
-Node: Readline Init File\7f355828
-Node: Readline Init File Syntax\7f357089
-Node: Conditional Init Constructs\7f380880
-Node: Sample Init File\7f385076
-Node: Bindable Readline Commands\7f388200
-Node: Commands For Moving\7f389404
-Node: Commands For History\7f391455
-Node: Commands For Text\7f396449
-Node: Commands For Killing\7f400098
-Node: Numeric Arguments\7f403131
-Node: Commands For Completion\7f404270
-Node: Keyboard Macros\7f408461
-Node: Miscellaneous Commands\7f409149
-Node: Readline vi Mode\7f415187
-Node: Programmable Completion\7f416094
-Node: Programmable Completion Builtins\7f423874
-Node: A Programmable Completion Example\7f434994
-Node: Using History Interactively\7f440242
-Node: Bash History Facilities\7f440926
-Node: Bash History Builtins\7f443931
-Node: History Interaction\7f448955
-Node: Event Designators\7f452575
-Node: Word Designators\7f453929
-Node: Modifiers\7f455689
-Node: Installing Bash\7f457497
-Node: Basic Installation\7f458634
-Node: Compilers and Options\7f462356
-Node: Compiling For Multiple Architectures\7f463097
-Node: Installation Names\7f464789
-Node: Specifying the System Type\7f466898
-Node: Sharing Defaults\7f467615
-Node: Operation Controls\7f468288
-Node: Optional Features\7f469246
-Node: Reporting Bugs\7f480465
-Node: Major Differences From The Bourne Shell\7f481799
-Node: GNU Free Documentation License\7f498648
-Node: Indexes\7f523825
-Node: Builtin Index\7f524279
-Node: Reserved Word Index\7f531380
-Node: Variable Index\7f533828
-Node: Function Index\7f550962
-Node: Concept Index\7f564746
+Node: Bash Features\7f261832
+Node: Invoking Bash\7f262845
+Node: Bash Startup Files\7f268858
+Node: Interactive Shells\7f273989
+Node: What is an Interactive Shell?\7f274400
+Node: Is this Shell Interactive?\7f275049
+Node: Interactive Shell Behavior\7f275864
+Node: Bash Conditional Expressions\7f279493
+Node: Shell Arithmetic\7f284135
+Node: Aliases\7f287096
+Node: Arrays\7f289990
+Node: The Directory Stack\7f296553
+Node: Directory Stack Builtins\7f297337
+Node: Controlling the Prompt\7f301597
+Node: The Restricted Shell\7f304562
+Node: Bash POSIX Mode\7f307172
+Node: Shell Compatibility Mode\7f323088
+Node: Job Control\7f331332
+Node: Job Control Basics\7f331792
+Node: Job Control Builtins\7f336794
+Node: Job Control Variables\7f342589
+Node: Command Line Editing\7f343745
+Node: Introduction and Notation\7f345416
+Node: Readline Interaction\7f347039
+Node: Readline Bare Essentials\7f348230
+Node: Readline Movement Commands\7f350019
+Node: Readline Killing Commands\7f350979
+Node: Readline Arguments\7f352900
+Node: Searching\7f353944
+Node: Readline Init File\7f356130
+Node: Readline Init File Syntax\7f357391
+Node: Conditional Init Constructs\7f381182
+Node: Sample Init File\7f385378
+Node: Bindable Readline Commands\7f388502
+Node: Commands For Moving\7f389706
+Node: Commands For History\7f391757
+Node: Commands For Text\7f396751
+Node: Commands For Killing\7f400400
+Node: Numeric Arguments\7f403433
+Node: Commands For Completion\7f404572
+Node: Keyboard Macros\7f408763
+Node: Miscellaneous Commands\7f409451
+Node: Readline vi Mode\7f415489
+Node: Programmable Completion\7f416396
+Node: Programmable Completion Builtins\7f424176
+Node: A Programmable Completion Example\7f435296
+Node: Using History Interactively\7f440544
+Node: Bash History Facilities\7f441228
+Node: Bash History Builtins\7f444233
+Node: History Interaction\7f449257
+Node: Event Designators\7f452877
+Node: Word Designators\7f454231
+Node: Modifiers\7f455991
+Node: Installing Bash\7f457799
+Node: Basic Installation\7f458936
+Node: Compilers and Options\7f462658
+Node: Compiling For Multiple Architectures\7f463399
+Node: Installation Names\7f465091
+Node: Specifying the System Type\7f467200
+Node: Sharing Defaults\7f467917
+Node: Operation Controls\7f468590
+Node: Optional Features\7f469548
+Node: Reporting Bugs\7f480767
+Node: Major Differences From The Bourne Shell\7f482101
+Node: GNU Free Documentation License\7f498950
+Node: Indexes\7f524127
+Node: Builtin Index\7f524581
+Node: Reserved Word Index\7f531682
+Node: Variable Index\7f534130
+Node: Function Index\7f551264
+Node: Concept Index\7f565048
\1f
End Tag Table
Setting @code{extdebug} after the shell has started to execute a script,
or referencing this variable when @code{extdebug} is not set,
may result in inconsistent values.
+Assignments to @env{BASH_ARGC} have no effect, and it may not be unset.
@item BASH_ARGV
An array variable containing all of the parameters in the current Bash
Setting @code{extdebug} after the shell has started to execute a script,
or referencing this variable when @code{extdebug} is not set,
may result in inconsistent values.
+Assignments to @env{BASH_ARGV} have no effect, and it may not be unset.
@item BASH_ARGV0
When referenced, this variable expands to the name of the shell or shell
@code{$@{FUNCNAME[$i]@}} was called (or @code{$@{BASH_LINENO[$i-1]@}} if
referenced within another shell function).
Use @code{LINENO} to obtain the current line number.
+Assignments to @env{BASH_LINENO} have no effect, and it may not be unset.
@item BASH_LOADABLES_PATH
A colon-separated list of directories in which the shell looks for
variable are defined.
The shell function @code{$@{FUNCNAME[$i]@}} is defined in the file
@code{$@{BASH_SOURCE[$i]@}} and called from @code{$@{BASH_SOURCE[$i+1]@}}
+Assignments to @env{BASH_SOURCE} have no effect, and it may not be unset.
@item BASH_SUBSHELL
Incremented by one within each subshell or subshell environment when
Copyright (C) 1988-2023 Free Software Foundation, Inc.
@end ignore
-@set LASTCHANGE Fri Jun 16 11:35:19 EDT 2023
+@set LASTCHANGE Wed Jun 28 14:06:44 EDT 2023
@set EDITION 5.3
@set VERSION 5.3
-@set UPDATED 16 June 2023
+@set UPDATED 28 June 2023
@set UPDATED-MONTH June 2023
return ret;
}
-static void
-uw_restore_parser_state (void *ps)
-{
- restore_parser_state (ps);
-}
-
-static void
-uw_rl_set_signals (void *ignore)
-{
- rl_set_signals ();
-}
-
/* Build a command string with
$0 == cs->funcname (function to execute for completion list)
$1 == command name (command being completed)
if (string[i + 1] == LPAREN)
ret = extract_command_subst (string, &si, SX_NOALLOC|(flags&SX_COMPLETE));
else if (string[i + 1] == LBRACE && FUNSUB_CHAR (string[si]))
- ret = extract_function_subst (string, &si, Q_DOUBLE_QUOTES, (flags & SX_COMPLETE));
+ ret = extract_function_subst (string, &si, Q_DOUBLE_QUOTES, SX_NOALLOC|(flags & SX_COMPLETE));
else
ret = extract_dollar_brace_string (string, &si, Q_DOUBLE_QUOTES, SX_NOALLOC|(flags&SX_COMPLETE));
save_tempenv = temporary_env;
temporary_env = 0; /* traps should not run with temporary env */
+ /* Will be restored by restore_parser_state */
+ if (shell_eof_token)
+ {
+ reset_parser (); /* resets parser-private state */
+ shell_eof_token = 0;
+ }
+
#if defined (JOB_CONTROL)
if (sig != DEBUG_TRAP) /* run_debug_trap does this */
save_pipeline (1); /* XXX only provides one save level */