mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-29 16:39:53 +02:00
Bash-5.1-rc1 release
This commit is contained in:
@@ -1,3 +1,33 @@
|
||||
This document details the changes between this version, bash-5.1-rc1, and
|
||||
the previous version, bash-5.1-beta.
|
||||
|
||||
1. Changes to Bash
|
||||
|
||||
a. Fixed an inconsistency in the way HISTCMD is calculated when it's expanded
|
||||
during a multi-line command.
|
||||
|
||||
b. Modified the change to here-document expansion containing backslash-quoted
|
||||
double quotes.
|
||||
|
||||
c. Fixed a case where the shells's exit status could be greater than 255.
|
||||
|
||||
d. Modified changed to process substitution so the executed command has its
|
||||
stdin redirected from /dev/null if it was previously interactive and
|
||||
reading commands from the terminal.
|
||||
|
||||
2. New Features in Bash
|
||||
|
||||
a. There is a new contributed loadable builtin: asort.
|
||||
|
||||
3. Changes to Readline
|
||||
|
||||
a. Fixed a bug that could cause an application with an application-specific
|
||||
redisplay function to crash if the line data structures had not been
|
||||
initialized.
|
||||
|
||||
4. New Features in Readline
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
This document details the changes between this version, bash-5.1-beta, and
|
||||
the previous version, bash-5.1-alpha.
|
||||
|
||||
|
||||
@@ -8977,3 +8977,79 @@ eval.c
|
||||
This protects against a command from PROMPT_COMMAND[n] unsetting the
|
||||
corresponding element of PROMPT_COMMAND.
|
||||
From a report from Koichi Murase <myoga.murase@gmail.com>
|
||||
|
||||
9/7
|
||||
---
|
||||
[bash-5.1-beta frozen]
|
||||
|
||||
9/8
|
||||
---
|
||||
lib/readline/display.c
|
||||
- _rl_update_final: don't bother doing anything if the line structures
|
||||
have not been initialized. Report and fix from gary@catalyst.net.nz
|
||||
|
||||
variables.c
|
||||
- get_histcmd: perform the same adjustment as in prompt_history_number;
|
||||
make sure to subtract one if we're doing this while executing a
|
||||
command that has already been saved to the history list. Inspired
|
||||
by a report from L A Walsh <bash@tlinx.org>
|
||||
|
||||
9/14
|
||||
----
|
||||
aclocal.m4
|
||||
- BASH_STRUCT_WEXITSTATUS_OFFSET: fix typo in loop condition reported
|
||||
by Andreas K. Hüttel <dilfridge@gentoo.org>
|
||||
|
||||
syntax.h
|
||||
- slashify_in_here_document: restore previous value that doesn't
|
||||
include double quote, since it's only special in certain cases
|
||||
|
||||
subst.c
|
||||
- expand_word_internal: when processing backslash-double quote inside
|
||||
a ${...} construct inside a here documemt, treat it the same as if
|
||||
it were double-quoted, as posix says. Fixes report from
|
||||
Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
9/15
|
||||
----
|
||||
support/signames.c
|
||||
- added a number of more esoteric signal names from AIX and Solaris
|
||||
|
||||
parse.y
|
||||
- report_syntax_error: make sure that the exit status is only set to
|
||||
one of the special builtin exit statuses if we are really executing
|
||||
a builtin here, not just if parse_and_execute_level > 0. Reported by
|
||||
Rob Landley <rob@landley.net>
|
||||
|
||||
execute_cmd.c
|
||||
- EX_BADSYNTAX: make sure that gets translated into EX_BADUSAGE (2)
|
||||
- execute_simple_command: if a function returns a value greater than
|
||||
EX_SHERRBASE, use builtin_status to translate it, as if a builtin
|
||||
were being executed
|
||||
- builtin_status: make sure a status > EX_SHERRBASE gets translated to
|
||||
EXECUTION_FAILURE
|
||||
|
||||
9/21
|
||||
----
|
||||
subst.c
|
||||
- process_substitute: set up input from /dev/null (standard for an
|
||||
asynchronous process) only if the shell is interactive and reading
|
||||
input from the terminal. This allows scripts to use process
|
||||
substitution to filter stdin. From a report from
|
||||
Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
9/23
|
||||
----
|
||||
doc/{bash.1,bashref.texi}
|
||||
- ENV: a couple of changes clarifying that it's only used when an
|
||||
interactive shell is started in posix mode. Report from
|
||||
Reuben Thomas <rrt@sc3d.org>
|
||||
|
||||
examples/loadables/asort.c
|
||||
- asort: loadable builtin to sort an array. Contributed by
|
||||
Geir Hauge <geir.hauge@gmail.com>
|
||||
|
||||
10/1
|
||||
----
|
||||
|
||||
[bash-5.1-beta frozen]
|
||||
|
||||
@@ -712,6 +712,7 @@ examples/loadables/Makefile.in f
|
||||
examples/loadables/Makefile.inc.in f
|
||||
examples/loadables/necho.c f
|
||||
examples/loadables/hello.c f
|
||||
examples/loadables/asort.c f
|
||||
examples/loadables/accept.c f
|
||||
examples/loadables/print.c f
|
||||
examples/loadables/realpath.c f
|
||||
@@ -1175,6 +1176,7 @@ tests/jobs3.sub f
|
||||
tests/jobs4.sub f
|
||||
tests/jobs5.sub f
|
||||
tests/jobs6.sub f
|
||||
tests/jobs7.sub f
|
||||
tests/jobs.right f
|
||||
tests/lastpipe.right f
|
||||
tests/lastpipe.tests f
|
||||
|
||||
@@ -145,6 +145,8 @@ tt. The `fg' and `bg' builtins now return an error in a command substitution
|
||||
uu. The shell now attempts to unlink all FIFOs on exit, whether a consuming
|
||||
process has finished with them or not.
|
||||
|
||||
vv. There is a new contributed loadable builtin: asort.
|
||||
|
||||
2. New Features in Readline
|
||||
|
||||
a. If a second consecutive completion attempt produces matches where the first
|
||||
|
||||
Vendored
+1
-1
@@ -2207,7 +2207,7 @@ main(c, v)
|
||||
exit (255);
|
||||
|
||||
/* crack s */
|
||||
for (i = 0; i < (sizeof(s) - 8); i++)
|
||||
for (i = 0; i < (sizeof(s) * 8); i++)
|
||||
{
|
||||
n = (s >> i) & 0xff;
|
||||
if (n == 42)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#! /bin/sh
|
||||
# From configure.ac for Bash 5.1, version 5.021.
|
||||
# From configure.ac for Bash 5.1, version 5.022.
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for bash 5.1-beta.
|
||||
# Generated by GNU Autoconf 2.69 for bash 5.1-rc1.
|
||||
#
|
||||
# Report bugs to <bug-bash@gnu.org>.
|
||||
#
|
||||
@@ -581,8 +581,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='bash'
|
||||
PACKAGE_TARNAME='bash'
|
||||
PACKAGE_VERSION='5.1-beta'
|
||||
PACKAGE_STRING='bash 5.1-beta'
|
||||
PACKAGE_VERSION='5.1-rc1'
|
||||
PACKAGE_STRING='bash 5.1-rc1'
|
||||
PACKAGE_BUGREPORT='bug-bash@gnu.org'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@@ -1427,7 +1427,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures bash 5.1-beta to adapt to many kinds of systems.
|
||||
\`configure' configures bash 5.1-rc1 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@@ -1492,7 +1492,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of bash 5.1-beta:";;
|
||||
short | recursive ) echo "Configuration of bash 5.1-rc1:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@@ -1693,7 +1693,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
bash configure 5.1-beta
|
||||
bash configure 5.1-rc1
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@@ -2402,7 +2402,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by bash $as_me 5.1-beta, which was
|
||||
It was created by bash $as_me 5.1-rc1, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@@ -2800,7 +2800,7 @@ ac_config_headers="$ac_config_headers config.h"
|
||||
|
||||
|
||||
BASHVERS=5.1
|
||||
RELSTATUS=beta
|
||||
RELSTATUS=rc1
|
||||
|
||||
case "$RELSTATUS" in
|
||||
alp*|bet*|dev*|rc*|releng*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
|
||||
@@ -18296,7 +18296,7 @@ main(c, v)
|
||||
exit (255);
|
||||
|
||||
/* crack s */
|
||||
for (i = 0; i < (sizeof(s) - 8); i++)
|
||||
for (i = 0; i < (sizeof(s) * 8); i++)
|
||||
{
|
||||
n = (s >> i) & 0xff;
|
||||
if (n == 42)
|
||||
@@ -21057,7 +21057,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by bash $as_me 5.1-beta, which was
|
||||
This file was extended by bash $as_me 5.1-rc1, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@@ -21123,7 +21123,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
bash config.status 5.1-beta
|
||||
bash config.status 5.1-rc1
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
||||
+2
-2
@@ -21,10 +21,10 @@ dnl Process this file with autoconf to produce a configure script.
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
AC_REVISION([for Bash 5.1, version 5.021])dnl
|
||||
AC_REVISION([for Bash 5.1, version 5.022])dnl
|
||||
|
||||
define(bashvers, 5.1)
|
||||
define(relstatus, beta)
|
||||
define(relstatus, rc1)
|
||||
|
||||
AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
|
||||
|
||||
|
||||
+3
-3
@@ -1131,8 +1131,8 @@ PPAARRAAMMEETTEERRSS
|
||||
EEMMAACCSS If bbaasshh finds this variable in the environment when the shell
|
||||
starts with value "t", it assumes that the shell is running in
|
||||
an Emacs shell buffer and disables line editing.
|
||||
EENNVV Similar to BBAASSHH__EENNVV; used when the shell is invoked in _p_o_s_i_x
|
||||
_m_o_d_e.
|
||||
EENNVV Expanded and executed similarly to BBAASSHH__EENNVV (see IINNVVOOCCAATTIIOONN
|
||||
above) when an interactive shell is invoked in _p_o_s_i_x _m_o_d_e.
|
||||
EEXXEECCIIGGNNOORREE
|
||||
A colon-separated list of shell patterns (see PPaatttteerrnn MMaattcchhiinngg)
|
||||
defining the list of filenames to be ignored by command search
|
||||
@@ -6401,4 +6401,4 @@ BBUUGGSS
|
||||
|
||||
|
||||
|
||||
GNU Bash 5.1 2020 August 25 BASH(1)
|
||||
GNU Bash 5.1 2020 September 23 BASH(1)
|
||||
|
||||
+6
-5
@@ -5,12 +5,12 @@
|
||||
.\" Case Western Reserve University
|
||||
.\" chet.ramey@case.edu
|
||||
.\"
|
||||
.\" Last Change: Tue Aug 25 09:58:55 EDT 2020
|
||||
.\" Last Change: Wed Sep 23 09:28:31 EDT 2020
|
||||
.\"
|
||||
.\" bash_builtins, strip all but Built-Ins section
|
||||
.if \n(zZ=1 .ig zZ
|
||||
.if \n(zY=1 .ig zY
|
||||
.TH BASH 1 "2020 August 25" "GNU Bash 5.1"
|
||||
.TH BASH 1 "2020 September 23" "GNU Bash 5.1"
|
||||
.\"
|
||||
.\" There's some problem with having a `@'
|
||||
.\" in a tagged paragraph with the BSD man macros.
|
||||
@@ -2136,10 +2136,11 @@ it assumes that the shell is running in an Emacs shell buffer and disables
|
||||
line editing.
|
||||
.TP
|
||||
.B ENV
|
||||
Similar to
|
||||
Expanded and executed similarly to
|
||||
.SM
|
||||
.BR BASH_ENV ;
|
||||
used when the shell is invoked in \fIposix mode\fP.
|
||||
.B BASH_ENV
|
||||
(see \fBINVOCATION\fP above)
|
||||
when an interactive shell is invoked in \fIposix mode\fP.
|
||||
.TP
|
||||
.B EXECIGNORE
|
||||
A colon-separated list of shell patterns (see \fBPattern Matching\fP)
|
||||
|
||||
+7
-6
@@ -3,7 +3,7 @@
|
||||
</HEAD>
|
||||
<BODY><TABLE WIDTH=100%>
|
||||
<TR>
|
||||
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2020 August 25<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2020 September 23<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
</TR>
|
||||
</TABLE>
|
||||
<BR><A HREF="#index">Index</A>
|
||||
@@ -2708,11 +2708,12 @@ line editing.
|
||||
<DT><B>ENV</B>
|
||||
|
||||
<DD>
|
||||
Similar to
|
||||
<FONT SIZE=-1><B>BASH_ENV</B>;
|
||||
Expanded and executed similarly to
|
||||
<FONT SIZE=-1><B>BASH_ENV</B>
|
||||
|
||||
</FONT>
|
||||
used when the shell is invoked in <I>posix mode</I>.
|
||||
(see <B>INVOCATION</B> above)
|
||||
when an interactive shell is invoked in <I>posix mode</I>.
|
||||
<DT><B>EXECIGNORE</B>
|
||||
|
||||
<DD>
|
||||
@@ -14252,7 +14253,7 @@ There may be only one active coprocess at a time.
|
||||
<HR>
|
||||
<TABLE WIDTH=100%>
|
||||
<TR>
|
||||
<TH ALIGN=LEFT width=33%>GNU Bash 5.1<TH ALIGN=CENTER width=33%>2020 August 25<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
<TH ALIGN=LEFT width=33%>GNU Bash 5.1<TH ALIGN=CENTER width=33%>2020 September 23<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
</TR>
|
||||
</TABLE>
|
||||
<HR>
|
||||
@@ -14359,6 +14360,6 @@ There may be only one active coprocess at a time.
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by man2html from bash.1.<BR>
|
||||
Time: 07 September 2020 09:52:27 EDT
|
||||
Time: 01 October 2020 14:49:34 EDT
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+200
-199
@@ -2,9 +2,9 @@ This is bash.info, produced by makeinfo version 6.7 from
|
||||
bashref.texi.
|
||||
|
||||
This text is a brief description of the features that are present in the
|
||||
Bash shell (version 5.1, 25 August 2020).
|
||||
Bash shell (version 5.1, 23 September 2020).
|
||||
|
||||
This is Edition 5.1, last updated 25 August 2020, of 'The GNU Bash
|
||||
This is Edition 5.1, last updated 23 September 2020, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 5.1.
|
||||
|
||||
Copyright (C) 1988-2018 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.1, 25 August 2020). The Bash home page is
|
||||
Bash shell (version 5.1, 23 September 2020). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 5.1, last updated 25 August 2020, of 'The GNU Bash
|
||||
This is Edition 5.1, last updated 23 September 2020, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 5.1.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -5130,8 +5130,9 @@ Variables::).
|
||||
Emacs shell buffer and disables line editing.
|
||||
|
||||
'ENV'
|
||||
Similar to 'BASH_ENV'; used when the shell is invoked in POSIX Mode
|
||||
(*note Bash POSIX Mode::).
|
||||
Expanded and executed similarlty to 'BASH_ENV' (*note Bash Startup
|
||||
Files::) when an interactive shell is invoked in POSIX Mode (*note
|
||||
Bash POSIX Mode::).
|
||||
|
||||
'EPOCHREALTIME'
|
||||
Each time this parameter is referenced, it expands to the number of
|
||||
@@ -11482,65 +11483,65 @@ D.3 Parameter and Variable Index
|
||||
* enable-keypad: Readline Init File Syntax.
|
||||
(line 150)
|
||||
* ENV: Bash Variables. (line 279)
|
||||
* EPOCHREALTIME: Bash Variables. (line 283)
|
||||
* EPOCHSECONDS: Bash Variables. (line 291)
|
||||
* EUID: Bash Variables. (line 298)
|
||||
* EXECIGNORE: Bash Variables. (line 302)
|
||||
* EPOCHREALTIME: Bash Variables. (line 284)
|
||||
* EPOCHSECONDS: Bash Variables. (line 292)
|
||||
* EUID: Bash Variables. (line 299)
|
||||
* EXECIGNORE: Bash Variables. (line 303)
|
||||
* expand-tilde: Readline Init File Syntax.
|
||||
(line 161)
|
||||
* FCEDIT: Bash Variables. (line 315)
|
||||
* FIGNORE: Bash Variables. (line 319)
|
||||
* FUNCNAME: Bash Variables. (line 325)
|
||||
* FUNCNEST: Bash Variables. (line 342)
|
||||
* GLOBIGNORE: Bash Variables. (line 347)
|
||||
* GROUPS: Bash Variables. (line 354)
|
||||
* histchars: Bash Variables. (line 360)
|
||||
* HISTCMD: Bash Variables. (line 375)
|
||||
* HISTCONTROL: Bash Variables. (line 381)
|
||||
* HISTFILE: Bash Variables. (line 397)
|
||||
* HISTFILESIZE: Bash Variables. (line 401)
|
||||
* HISTIGNORE: Bash Variables. (line 412)
|
||||
* FCEDIT: Bash Variables. (line 316)
|
||||
* FIGNORE: Bash Variables. (line 320)
|
||||
* FUNCNAME: Bash Variables. (line 326)
|
||||
* FUNCNEST: Bash Variables. (line 343)
|
||||
* GLOBIGNORE: Bash Variables. (line 348)
|
||||
* GROUPS: Bash Variables. (line 355)
|
||||
* histchars: Bash Variables. (line 361)
|
||||
* HISTCMD: Bash Variables. (line 376)
|
||||
* HISTCONTROL: Bash Variables. (line 382)
|
||||
* HISTFILE: Bash Variables. (line 398)
|
||||
* HISTFILESIZE: Bash Variables. (line 402)
|
||||
* HISTIGNORE: Bash Variables. (line 413)
|
||||
* history-preserve-point: Readline Init File Syntax.
|
||||
(line 165)
|
||||
* history-size: Readline Init File Syntax.
|
||||
(line 171)
|
||||
* HISTSIZE: Bash Variables. (line 432)
|
||||
* HISTTIMEFORMAT: Bash Variables. (line 439)
|
||||
* HISTSIZE: Bash Variables. (line 433)
|
||||
* HISTTIMEFORMAT: Bash Variables. (line 440)
|
||||
* HOME: Bourne Shell Variables.
|
||||
(line 13)
|
||||
* horizontal-scroll-mode: Readline Init File Syntax.
|
||||
(line 180)
|
||||
* HOSTFILE: Bash Variables. (line 447)
|
||||
* HOSTNAME: Bash Variables. (line 458)
|
||||
* HOSTTYPE: Bash Variables. (line 461)
|
||||
* HOSTFILE: Bash Variables. (line 448)
|
||||
* HOSTNAME: Bash Variables. (line 459)
|
||||
* HOSTTYPE: Bash Variables. (line 462)
|
||||
* IFS: Bourne Shell Variables.
|
||||
(line 18)
|
||||
* IGNOREEOF: Bash Variables. (line 464)
|
||||
* IGNOREEOF: Bash Variables. (line 465)
|
||||
* input-meta: Readline Init File Syntax.
|
||||
(line 189)
|
||||
* INPUTRC: Bash Variables. (line 474)
|
||||
* INSIDE_EMACS: Bash Variables. (line 478)
|
||||
* INPUTRC: Bash Variables. (line 475)
|
||||
* INSIDE_EMACS: Bash Variables. (line 479)
|
||||
* isearch-terminators: Readline Init File Syntax.
|
||||
(line 197)
|
||||
* keymap: Readline Init File Syntax.
|
||||
(line 204)
|
||||
* LANG: Bash Variables. (line 484)
|
||||
* LC_ALL: Bash Variables. (line 488)
|
||||
* LC_COLLATE: Bash Variables. (line 492)
|
||||
* LC_CTYPE: Bash Variables. (line 499)
|
||||
* LANG: Bash Variables. (line 485)
|
||||
* LC_ALL: Bash Variables. (line 489)
|
||||
* LC_COLLATE: Bash Variables. (line 493)
|
||||
* LC_CTYPE: Bash Variables. (line 500)
|
||||
* LC_MESSAGES: Locale Translation. (line 15)
|
||||
* LC_MESSAGES <1>: Bash Variables. (line 504)
|
||||
* LC_NUMERIC: Bash Variables. (line 508)
|
||||
* LC_TIME: Bash Variables. (line 512)
|
||||
* LINENO: Bash Variables. (line 516)
|
||||
* LINES: Bash Variables. (line 521)
|
||||
* MACHTYPE: Bash Variables. (line 527)
|
||||
* LC_MESSAGES <1>: Bash Variables. (line 505)
|
||||
* LC_NUMERIC: Bash Variables. (line 509)
|
||||
* LC_TIME: Bash Variables. (line 513)
|
||||
* LINENO: Bash Variables. (line 517)
|
||||
* LINES: Bash Variables. (line 522)
|
||||
* MACHTYPE: Bash Variables. (line 528)
|
||||
* MAIL: Bourne Shell Variables.
|
||||
(line 22)
|
||||
* MAILCHECK: Bash Variables. (line 531)
|
||||
* MAILCHECK: Bash Variables. (line 532)
|
||||
* MAILPATH: Bourne Shell Variables.
|
||||
(line 27)
|
||||
* MAPFILE: Bash Variables. (line 539)
|
||||
* MAPFILE: Bash Variables. (line 540)
|
||||
* mark-modified-lines: Readline Init File Syntax.
|
||||
(line 234)
|
||||
* mark-symlinked-directories: Readline Init File Syntax.
|
||||
@@ -11551,43 +11552,43 @@ D.3 Parameter and Variable Index
|
||||
(line 251)
|
||||
* meta-flag: Readline Init File Syntax.
|
||||
(line 189)
|
||||
* OLDPWD: Bash Variables. (line 543)
|
||||
* OLDPWD: Bash Variables. (line 544)
|
||||
* OPTARG: Bourne Shell Variables.
|
||||
(line 34)
|
||||
* OPTERR: Bash Variables. (line 546)
|
||||
* OPTERR: Bash Variables. (line 547)
|
||||
* OPTIND: Bourne Shell Variables.
|
||||
(line 38)
|
||||
* OSTYPE: Bash Variables. (line 550)
|
||||
* OSTYPE: Bash Variables. (line 551)
|
||||
* output-meta: Readline Init File Syntax.
|
||||
(line 256)
|
||||
* page-completions: Readline Init File Syntax.
|
||||
(line 262)
|
||||
* PATH: Bourne Shell Variables.
|
||||
(line 42)
|
||||
* PIPESTATUS: Bash Variables. (line 553)
|
||||
* POSIXLY_CORRECT: Bash Variables. (line 558)
|
||||
* PPID: Bash Variables. (line 568)
|
||||
* PROMPT_COMMAND: Bash Variables. (line 572)
|
||||
* PROMPT_DIRTRIM: Bash Variables. (line 578)
|
||||
* PS0: Bash Variables. (line 584)
|
||||
* PIPESTATUS: Bash Variables. (line 554)
|
||||
* POSIXLY_CORRECT: Bash Variables. (line 559)
|
||||
* PPID: Bash Variables. (line 569)
|
||||
* PROMPT_COMMAND: Bash Variables. (line 573)
|
||||
* PROMPT_DIRTRIM: Bash Variables. (line 579)
|
||||
* PS0: Bash Variables. (line 585)
|
||||
* PS1: Bourne Shell Variables.
|
||||
(line 48)
|
||||
* PS2: Bourne Shell Variables.
|
||||
(line 53)
|
||||
* PS3: Bash Variables. (line 589)
|
||||
* PS4: Bash Variables. (line 594)
|
||||
* PWD: Bash Variables. (line 602)
|
||||
* RANDOM: Bash Variables. (line 605)
|
||||
* READLINE_LINE: Bash Variables. (line 611)
|
||||
* READLINE_MARK: Bash Variables. (line 615)
|
||||
* READLINE_POINT: Bash Variables. (line 621)
|
||||
* REPLY: Bash Variables. (line 625)
|
||||
* PS3: Bash Variables. (line 590)
|
||||
* PS4: Bash Variables. (line 595)
|
||||
* PWD: Bash Variables. (line 603)
|
||||
* RANDOM: Bash Variables. (line 606)
|
||||
* READLINE_LINE: Bash Variables. (line 612)
|
||||
* READLINE_MARK: Bash Variables. (line 616)
|
||||
* READLINE_POINT: Bash Variables. (line 622)
|
||||
* REPLY: Bash Variables. (line 626)
|
||||
* revert-all-at-newline: Readline Init File Syntax.
|
||||
(line 272)
|
||||
* SECONDS: Bash Variables. (line 628)
|
||||
* SHELL: Bash Variables. (line 637)
|
||||
* SHELLOPTS: Bash Variables. (line 642)
|
||||
* SHLVL: Bash Variables. (line 651)
|
||||
* SECONDS: Bash Variables. (line 629)
|
||||
* SHELL: Bash Variables. (line 638)
|
||||
* SHELLOPTS: Bash Variables. (line 643)
|
||||
* SHLVL: Bash Variables. (line 652)
|
||||
* show-all-if-ambiguous: Readline Init File Syntax.
|
||||
(line 278)
|
||||
* show-all-if-unmodified: Readline Init File Syntax.
|
||||
@@ -11596,13 +11597,13 @@ D.3 Parameter and Variable Index
|
||||
(line 293)
|
||||
* skip-completed-text: Readline Init File Syntax.
|
||||
(line 299)
|
||||
* SRANDOM: Bash Variables. (line 656)
|
||||
* SRANDOM: Bash Variables. (line 657)
|
||||
* TEXTDOMAIN: Locale Translation. (line 15)
|
||||
* TEXTDOMAINDIR: Locale Translation. (line 15)
|
||||
* TIMEFORMAT: Bash Variables. (line 665)
|
||||
* TMOUT: Bash Variables. (line 703)
|
||||
* TMPDIR: Bash Variables. (line 715)
|
||||
* UID: Bash Variables. (line 719)
|
||||
* TIMEFORMAT: Bash Variables. (line 666)
|
||||
* TMOUT: Bash Variables. (line 704)
|
||||
* TMPDIR: Bash Variables. (line 716)
|
||||
* UID: Bash Variables. (line 720)
|
||||
* vi-cmd-mode-string: Readline Init File Syntax.
|
||||
(line 312)
|
||||
* vi-ins-mode-string: Readline Init File Syntax.
|
||||
@@ -11979,137 +11980,137 @@ D.5 Concept Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top893
|
||||
Node: Introduction2809
|
||||
Node: What is Bash?3025
|
||||
Node: What is a shell?4139
|
||||
Node: Definitions6677
|
||||
Node: Basic Shell Features9628
|
||||
Node: Shell Syntax10847
|
||||
Node: Shell Operation11873
|
||||
Node: Quoting13166
|
||||
Node: Escape Character14466
|
||||
Node: Single Quotes14951
|
||||
Node: Double Quotes15299
|
||||
Node: ANSI-C Quoting16577
|
||||
Node: Locale Translation17836
|
||||
Node: Comments18989
|
||||
Node: Shell Commands19607
|
||||
Node: Reserved Words20545
|
||||
Node: Simple Commands21301
|
||||
Node: Pipelines21955
|
||||
Node: Lists24887
|
||||
Node: Compound Commands26678
|
||||
Node: Looping Constructs27690
|
||||
Node: Conditional Constructs30185
|
||||
Node: Command Grouping41756
|
||||
Node: Coprocesses43235
|
||||
Node: GNU Parallel45138
|
||||
Node: Shell Functions49439
|
||||
Node: Shell Parameters56646
|
||||
Node: Positional Parameters61059
|
||||
Node: Special Parameters61959
|
||||
Node: Shell Expansions65183
|
||||
Node: Brace Expansion67306
|
||||
Node: Tilde Expansion70029
|
||||
Node: Shell Parameter Expansion72646
|
||||
Node: Command Substitution87775
|
||||
Node: Arithmetic Expansion89130
|
||||
Node: Process Substitution90062
|
||||
Node: Word Splitting91182
|
||||
Node: Filename Expansion93126
|
||||
Node: Pattern Matching95675
|
||||
Node: Quote Removal99661
|
||||
Node: Redirections99956
|
||||
Node: Executing Commands109526
|
||||
Node: Simple Command Expansion110196
|
||||
Node: Command Search and Execution112150
|
||||
Node: Command Execution Environment114526
|
||||
Node: Environment117510
|
||||
Node: Exit Status119169
|
||||
Node: Signals120839
|
||||
Node: Shell Scripts122806
|
||||
Node: Shell Builtin Commands125818
|
||||
Node: Bourne Shell Builtins127856
|
||||
Node: Bash Builtins148785
|
||||
Node: Modifying Shell Behavior178720
|
||||
Node: The Set Builtin179065
|
||||
Node: The Shopt Builtin189478
|
||||
Node: Special Builtins204388
|
||||
Node: Shell Variables205367
|
||||
Node: Bourne Shell Variables205804
|
||||
Node: Bash Variables207908
|
||||
Node: Bash Features240478
|
||||
Node: Invoking Bash241491
|
||||
Node: Bash Startup Files247504
|
||||
Node: Interactive Shells252607
|
||||
Node: What is an Interactive Shell?253017
|
||||
Node: Is this Shell Interactive?253666
|
||||
Node: Interactive Shell Behavior254481
|
||||
Node: Bash Conditional Expressions257995
|
||||
Node: Shell Arithmetic262572
|
||||
Node: Aliases265512
|
||||
Node: Arrays268132
|
||||
Node: The Directory Stack274141
|
||||
Node: Directory Stack Builtins274925
|
||||
Node: Controlling the Prompt277893
|
||||
Node: The Restricted Shell280843
|
||||
Node: Bash POSIX Mode283437
|
||||
Node: Shell Compatibility Mode294473
|
||||
Node: Job Control301129
|
||||
Node: Job Control Basics301589
|
||||
Node: Job Control Builtins306585
|
||||
Node: Job Control Variables311985
|
||||
Node: Command Line Editing313141
|
||||
Node: Introduction and Notation314812
|
||||
Node: Readline Interaction316435
|
||||
Node: Readline Bare Essentials317626
|
||||
Node: Readline Movement Commands319409
|
||||
Node: Readline Killing Commands320369
|
||||
Node: Readline Arguments322287
|
||||
Node: Searching323331
|
||||
Node: Readline Init File325517
|
||||
Node: Readline Init File Syntax326776
|
||||
Node: Conditional Init Constructs347315
|
||||
Node: Sample Init File351511
|
||||
Node: Bindable Readline Commands354635
|
||||
Node: Commands For Moving355839
|
||||
Node: Commands For History357890
|
||||
Node: Commands For Text362683
|
||||
Node: Commands For Killing366332
|
||||
Node: Numeric Arguments369365
|
||||
Node: Commands For Completion370504
|
||||
Node: Keyboard Macros374695
|
||||
Node: Miscellaneous Commands375382
|
||||
Node: Readline vi Mode381066
|
||||
Node: Programmable Completion381973
|
||||
Node: Programmable Completion Builtins389753
|
||||
Node: A Programmable Completion Example400448
|
||||
Node: Using History Interactively405695
|
||||
Node: Bash History Facilities406379
|
||||
Node: Bash History Builtins409384
|
||||
Node: History Interaction414113
|
||||
Node: Event Designators417733
|
||||
Node: Word Designators419087
|
||||
Node: Modifiers420847
|
||||
Node: Installing Bash422658
|
||||
Node: Basic Installation423795
|
||||
Node: Compilers and Options427053
|
||||
Node: Compiling For Multiple Architectures427794
|
||||
Node: Installation Names429487
|
||||
Node: Specifying the System Type430305
|
||||
Node: Sharing Defaults431021
|
||||
Node: Operation Controls431694
|
||||
Node: Optional Features432652
|
||||
Node: Reporting Bugs443170
|
||||
Node: Major Differences From The Bourne Shell444364
|
||||
Node: GNU Free Documentation License461216
|
||||
Node: Indexes486393
|
||||
Node: Builtin Index486847
|
||||
Node: Reserved Word Index493674
|
||||
Node: Variable Index496122
|
||||
Node: Function Index512019
|
||||
Node: Concept Index525529
|
||||
Node: Top899
|
||||
Node: Introduction2821
|
||||
Node: What is Bash?3037
|
||||
Node: What is a shell?4151
|
||||
Node: Definitions6689
|
||||
Node: Basic Shell Features9640
|
||||
Node: Shell Syntax10859
|
||||
Node: Shell Operation11885
|
||||
Node: Quoting13178
|
||||
Node: Escape Character14478
|
||||
Node: Single Quotes14963
|
||||
Node: Double Quotes15311
|
||||
Node: ANSI-C Quoting16589
|
||||
Node: Locale Translation17848
|
||||
Node: Comments19001
|
||||
Node: Shell Commands19619
|
||||
Node: Reserved Words20557
|
||||
Node: Simple Commands21313
|
||||
Node: Pipelines21967
|
||||
Node: Lists24899
|
||||
Node: Compound Commands26690
|
||||
Node: Looping Constructs27702
|
||||
Node: Conditional Constructs30197
|
||||
Node: Command Grouping41768
|
||||
Node: Coprocesses43247
|
||||
Node: GNU Parallel45150
|
||||
Node: Shell Functions49451
|
||||
Node: Shell Parameters56658
|
||||
Node: Positional Parameters61071
|
||||
Node: Special Parameters61971
|
||||
Node: Shell Expansions65195
|
||||
Node: Brace Expansion67318
|
||||
Node: Tilde Expansion70041
|
||||
Node: Shell Parameter Expansion72658
|
||||
Node: Command Substitution87787
|
||||
Node: Arithmetic Expansion89142
|
||||
Node: Process Substitution90074
|
||||
Node: Word Splitting91194
|
||||
Node: Filename Expansion93138
|
||||
Node: Pattern Matching95687
|
||||
Node: Quote Removal99673
|
||||
Node: Redirections99968
|
||||
Node: Executing Commands109538
|
||||
Node: Simple Command Expansion110208
|
||||
Node: Command Search and Execution112162
|
||||
Node: Command Execution Environment114538
|
||||
Node: Environment117522
|
||||
Node: Exit Status119181
|
||||
Node: Signals120851
|
||||
Node: Shell Scripts122818
|
||||
Node: Shell Builtin Commands125830
|
||||
Node: Bourne Shell Builtins127868
|
||||
Node: Bash Builtins148797
|
||||
Node: Modifying Shell Behavior178732
|
||||
Node: The Set Builtin179077
|
||||
Node: The Shopt Builtin189490
|
||||
Node: Special Builtins204400
|
||||
Node: Shell Variables205379
|
||||
Node: Bourne Shell Variables205816
|
||||
Node: Bash Variables207920
|
||||
Node: Bash Features240554
|
||||
Node: Invoking Bash241567
|
||||
Node: Bash Startup Files247580
|
||||
Node: Interactive Shells252683
|
||||
Node: What is an Interactive Shell?253093
|
||||
Node: Is this Shell Interactive?253742
|
||||
Node: Interactive Shell Behavior254557
|
||||
Node: Bash Conditional Expressions258071
|
||||
Node: Shell Arithmetic262648
|
||||
Node: Aliases265588
|
||||
Node: Arrays268208
|
||||
Node: The Directory Stack274217
|
||||
Node: Directory Stack Builtins275001
|
||||
Node: Controlling the Prompt277969
|
||||
Node: The Restricted Shell280919
|
||||
Node: Bash POSIX Mode283513
|
||||
Node: Shell Compatibility Mode294549
|
||||
Node: Job Control301205
|
||||
Node: Job Control Basics301665
|
||||
Node: Job Control Builtins306661
|
||||
Node: Job Control Variables312061
|
||||
Node: Command Line Editing313217
|
||||
Node: Introduction and Notation314888
|
||||
Node: Readline Interaction316511
|
||||
Node: Readline Bare Essentials317702
|
||||
Node: Readline Movement Commands319485
|
||||
Node: Readline Killing Commands320445
|
||||
Node: Readline Arguments322363
|
||||
Node: Searching323407
|
||||
Node: Readline Init File325593
|
||||
Node: Readline Init File Syntax326852
|
||||
Node: Conditional Init Constructs347391
|
||||
Node: Sample Init File351587
|
||||
Node: Bindable Readline Commands354711
|
||||
Node: Commands For Moving355915
|
||||
Node: Commands For History357966
|
||||
Node: Commands For Text362759
|
||||
Node: Commands For Killing366408
|
||||
Node: Numeric Arguments369441
|
||||
Node: Commands For Completion370580
|
||||
Node: Keyboard Macros374771
|
||||
Node: Miscellaneous Commands375458
|
||||
Node: Readline vi Mode381142
|
||||
Node: Programmable Completion382049
|
||||
Node: Programmable Completion Builtins389829
|
||||
Node: A Programmable Completion Example400524
|
||||
Node: Using History Interactively405771
|
||||
Node: Bash History Facilities406455
|
||||
Node: Bash History Builtins409460
|
||||
Node: History Interaction414189
|
||||
Node: Event Designators417809
|
||||
Node: Word Designators419163
|
||||
Node: Modifiers420923
|
||||
Node: Installing Bash422734
|
||||
Node: Basic Installation423871
|
||||
Node: Compilers and Options427129
|
||||
Node: Compiling For Multiple Architectures427870
|
||||
Node: Installation Names429563
|
||||
Node: Specifying the System Type430381
|
||||
Node: Sharing Defaults431097
|
||||
Node: Operation Controls431770
|
||||
Node: Optional Features432728
|
||||
Node: Reporting Bugs443246
|
||||
Node: Major Differences From The Bourne Shell444440
|
||||
Node: GNU Free Documentation License461292
|
||||
Node: Indexes486469
|
||||
Node: Builtin Index486923
|
||||
Node: Reserved Word Index493750
|
||||
Node: Variable Index496198
|
||||
Node: Function Index512095
|
||||
Node: Concept Index525605
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
Binary file not shown.
+3912
-3912
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+7
-5
@@ -1,9 +1,9 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<!-- This text is a brief description of the features that are present in
|
||||
the Bash shell (version 5.1, 25 August 2020).
|
||||
the Bash shell (version 5.1, 23 September 2020).
|
||||
|
||||
This is Edition 5.1, last updated 25 August 2020,
|
||||
This is Edition 5.1, last updated 23 September 2020,
|
||||
of The GNU Bash Reference Manual,
|
||||
for Bash, Version 5.1.
|
||||
|
||||
@@ -275,10 +275,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
|
||||
<span id="Bash-Features-1"></span><h1 class="top">Bash Features</h1>
|
||||
|
||||
<p>This text is a brief description of the features that are present in
|
||||
the Bash shell (version 5.1, 25 August 2020).
|
||||
the Bash shell (version 5.1, 23 September 2020).
|
||||
The Bash home page is <a href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
|
||||
</p>
|
||||
<p>This is Edition 5.1, last updated 25 August 2020,
|
||||
<p>This is Edition 5.1, last updated 23 September 2020,
|
||||
of <cite>The GNU Bash Reference Manual</cite>,
|
||||
for <code>Bash</code>, Version 5.1.
|
||||
</p>
|
||||
@@ -6872,7 +6872,9 @@ Emacs shell buffer and disables line editing.
|
||||
<dt><code>ENV</code>
|
||||
<span id="index-ENV"></span>
|
||||
</dt>
|
||||
<dd><p>Similar to <code>BASH_ENV</code>; used when the shell is invoked in
|
||||
<dd><p>Expanded and executed similarlty to <code>BASH_ENV</code>
|
||||
(see <a href="#Bash-Startup-Files">Bash Startup Files</a>)
|
||||
when an interactive shell is invoked in
|
||||
<small>POSIX</small> Mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>).
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
+200
-199
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.7 from
|
||||
bashref.texi.
|
||||
|
||||
This text is a brief description of the features that are present in the
|
||||
Bash shell (version 5.1, 25 August 2020).
|
||||
Bash shell (version 5.1, 23 September 2020).
|
||||
|
||||
This is Edition 5.1, last updated 25 August 2020, of 'The GNU Bash
|
||||
This is Edition 5.1, last updated 23 September 2020, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 5.1.
|
||||
|
||||
Copyright (C) 1988-2018 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.1, 25 August 2020). The Bash home page is
|
||||
Bash shell (version 5.1, 23 September 2020). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 5.1, last updated 25 August 2020, of 'The GNU Bash
|
||||
This is Edition 5.1, last updated 23 September 2020, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 5.1.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -5130,8 +5130,9 @@ Variables::).
|
||||
Emacs shell buffer and disables line editing.
|
||||
|
||||
'ENV'
|
||||
Similar to 'BASH_ENV'; used when the shell is invoked in POSIX Mode
|
||||
(*note Bash POSIX Mode::).
|
||||
Expanded and executed similarlty to 'BASH_ENV' (*note Bash Startup
|
||||
Files::) when an interactive shell is invoked in POSIX Mode (*note
|
||||
Bash POSIX Mode::).
|
||||
|
||||
'EPOCHREALTIME'
|
||||
Each time this parameter is referenced, it expands to the number of
|
||||
@@ -11482,65 +11483,65 @@ D.3 Parameter and Variable Index
|
||||
* enable-keypad: Readline Init File Syntax.
|
||||
(line 150)
|
||||
* ENV: Bash Variables. (line 279)
|
||||
* EPOCHREALTIME: Bash Variables. (line 283)
|
||||
* EPOCHSECONDS: Bash Variables. (line 291)
|
||||
* EUID: Bash Variables. (line 298)
|
||||
* EXECIGNORE: Bash Variables. (line 302)
|
||||
* EPOCHREALTIME: Bash Variables. (line 284)
|
||||
* EPOCHSECONDS: Bash Variables. (line 292)
|
||||
* EUID: Bash Variables. (line 299)
|
||||
* EXECIGNORE: Bash Variables. (line 303)
|
||||
* expand-tilde: Readline Init File Syntax.
|
||||
(line 161)
|
||||
* FCEDIT: Bash Variables. (line 315)
|
||||
* FIGNORE: Bash Variables. (line 319)
|
||||
* FUNCNAME: Bash Variables. (line 325)
|
||||
* FUNCNEST: Bash Variables. (line 342)
|
||||
* GLOBIGNORE: Bash Variables. (line 347)
|
||||
* GROUPS: Bash Variables. (line 354)
|
||||
* histchars: Bash Variables. (line 360)
|
||||
* HISTCMD: Bash Variables. (line 375)
|
||||
* HISTCONTROL: Bash Variables. (line 381)
|
||||
* HISTFILE: Bash Variables. (line 397)
|
||||
* HISTFILESIZE: Bash Variables. (line 401)
|
||||
* HISTIGNORE: Bash Variables. (line 412)
|
||||
* FCEDIT: Bash Variables. (line 316)
|
||||
* FIGNORE: Bash Variables. (line 320)
|
||||
* FUNCNAME: Bash Variables. (line 326)
|
||||
* FUNCNEST: Bash Variables. (line 343)
|
||||
* GLOBIGNORE: Bash Variables. (line 348)
|
||||
* GROUPS: Bash Variables. (line 355)
|
||||
* histchars: Bash Variables. (line 361)
|
||||
* HISTCMD: Bash Variables. (line 376)
|
||||
* HISTCONTROL: Bash Variables. (line 382)
|
||||
* HISTFILE: Bash Variables. (line 398)
|
||||
* HISTFILESIZE: Bash Variables. (line 402)
|
||||
* HISTIGNORE: Bash Variables. (line 413)
|
||||
* history-preserve-point: Readline Init File Syntax.
|
||||
(line 165)
|
||||
* history-size: Readline Init File Syntax.
|
||||
(line 171)
|
||||
* HISTSIZE: Bash Variables. (line 432)
|
||||
* HISTTIMEFORMAT: Bash Variables. (line 439)
|
||||
* HISTSIZE: Bash Variables. (line 433)
|
||||
* HISTTIMEFORMAT: Bash Variables. (line 440)
|
||||
* HOME: Bourne Shell Variables.
|
||||
(line 13)
|
||||
* horizontal-scroll-mode: Readline Init File Syntax.
|
||||
(line 180)
|
||||
* HOSTFILE: Bash Variables. (line 447)
|
||||
* HOSTNAME: Bash Variables. (line 458)
|
||||
* HOSTTYPE: Bash Variables. (line 461)
|
||||
* HOSTFILE: Bash Variables. (line 448)
|
||||
* HOSTNAME: Bash Variables. (line 459)
|
||||
* HOSTTYPE: Bash Variables. (line 462)
|
||||
* IFS: Bourne Shell Variables.
|
||||
(line 18)
|
||||
* IGNOREEOF: Bash Variables. (line 464)
|
||||
* IGNOREEOF: Bash Variables. (line 465)
|
||||
* input-meta: Readline Init File Syntax.
|
||||
(line 189)
|
||||
* INPUTRC: Bash Variables. (line 474)
|
||||
* INSIDE_EMACS: Bash Variables. (line 478)
|
||||
* INPUTRC: Bash Variables. (line 475)
|
||||
* INSIDE_EMACS: Bash Variables. (line 479)
|
||||
* isearch-terminators: Readline Init File Syntax.
|
||||
(line 197)
|
||||
* keymap: Readline Init File Syntax.
|
||||
(line 204)
|
||||
* LANG: Bash Variables. (line 484)
|
||||
* LC_ALL: Bash Variables. (line 488)
|
||||
* LC_COLLATE: Bash Variables. (line 492)
|
||||
* LC_CTYPE: Bash Variables. (line 499)
|
||||
* LANG: Bash Variables. (line 485)
|
||||
* LC_ALL: Bash Variables. (line 489)
|
||||
* LC_COLLATE: Bash Variables. (line 493)
|
||||
* LC_CTYPE: Bash Variables. (line 500)
|
||||
* LC_MESSAGES: Locale Translation. (line 15)
|
||||
* LC_MESSAGES <1>: Bash Variables. (line 504)
|
||||
* LC_NUMERIC: Bash Variables. (line 508)
|
||||
* LC_TIME: Bash Variables. (line 512)
|
||||
* LINENO: Bash Variables. (line 516)
|
||||
* LINES: Bash Variables. (line 521)
|
||||
* MACHTYPE: Bash Variables. (line 527)
|
||||
* LC_MESSAGES <1>: Bash Variables. (line 505)
|
||||
* LC_NUMERIC: Bash Variables. (line 509)
|
||||
* LC_TIME: Bash Variables. (line 513)
|
||||
* LINENO: Bash Variables. (line 517)
|
||||
* LINES: Bash Variables. (line 522)
|
||||
* MACHTYPE: Bash Variables. (line 528)
|
||||
* MAIL: Bourne Shell Variables.
|
||||
(line 22)
|
||||
* MAILCHECK: Bash Variables. (line 531)
|
||||
* MAILCHECK: Bash Variables. (line 532)
|
||||
* MAILPATH: Bourne Shell Variables.
|
||||
(line 27)
|
||||
* MAPFILE: Bash Variables. (line 539)
|
||||
* MAPFILE: Bash Variables. (line 540)
|
||||
* mark-modified-lines: Readline Init File Syntax.
|
||||
(line 234)
|
||||
* mark-symlinked-directories: Readline Init File Syntax.
|
||||
@@ -11551,43 +11552,43 @@ D.3 Parameter and Variable Index
|
||||
(line 251)
|
||||
* meta-flag: Readline Init File Syntax.
|
||||
(line 189)
|
||||
* OLDPWD: Bash Variables. (line 543)
|
||||
* OLDPWD: Bash Variables. (line 544)
|
||||
* OPTARG: Bourne Shell Variables.
|
||||
(line 34)
|
||||
* OPTERR: Bash Variables. (line 546)
|
||||
* OPTERR: Bash Variables. (line 547)
|
||||
* OPTIND: Bourne Shell Variables.
|
||||
(line 38)
|
||||
* OSTYPE: Bash Variables. (line 550)
|
||||
* OSTYPE: Bash Variables. (line 551)
|
||||
* output-meta: Readline Init File Syntax.
|
||||
(line 256)
|
||||
* page-completions: Readline Init File Syntax.
|
||||
(line 262)
|
||||
* PATH: Bourne Shell Variables.
|
||||
(line 42)
|
||||
* PIPESTATUS: Bash Variables. (line 553)
|
||||
* POSIXLY_CORRECT: Bash Variables. (line 558)
|
||||
* PPID: Bash Variables. (line 568)
|
||||
* PROMPT_COMMAND: Bash Variables. (line 572)
|
||||
* PROMPT_DIRTRIM: Bash Variables. (line 578)
|
||||
* PS0: Bash Variables. (line 584)
|
||||
* PIPESTATUS: Bash Variables. (line 554)
|
||||
* POSIXLY_CORRECT: Bash Variables. (line 559)
|
||||
* PPID: Bash Variables. (line 569)
|
||||
* PROMPT_COMMAND: Bash Variables. (line 573)
|
||||
* PROMPT_DIRTRIM: Bash Variables. (line 579)
|
||||
* PS0: Bash Variables. (line 585)
|
||||
* PS1: Bourne Shell Variables.
|
||||
(line 48)
|
||||
* PS2: Bourne Shell Variables.
|
||||
(line 53)
|
||||
* PS3: Bash Variables. (line 589)
|
||||
* PS4: Bash Variables. (line 594)
|
||||
* PWD: Bash Variables. (line 602)
|
||||
* RANDOM: Bash Variables. (line 605)
|
||||
* READLINE_LINE: Bash Variables. (line 611)
|
||||
* READLINE_MARK: Bash Variables. (line 615)
|
||||
* READLINE_POINT: Bash Variables. (line 621)
|
||||
* REPLY: Bash Variables. (line 625)
|
||||
* PS3: Bash Variables. (line 590)
|
||||
* PS4: Bash Variables. (line 595)
|
||||
* PWD: Bash Variables. (line 603)
|
||||
* RANDOM: Bash Variables. (line 606)
|
||||
* READLINE_LINE: Bash Variables. (line 612)
|
||||
* READLINE_MARK: Bash Variables. (line 616)
|
||||
* READLINE_POINT: Bash Variables. (line 622)
|
||||
* REPLY: Bash Variables. (line 626)
|
||||
* revert-all-at-newline: Readline Init File Syntax.
|
||||
(line 272)
|
||||
* SECONDS: Bash Variables. (line 628)
|
||||
* SHELL: Bash Variables. (line 637)
|
||||
* SHELLOPTS: Bash Variables. (line 642)
|
||||
* SHLVL: Bash Variables. (line 651)
|
||||
* SECONDS: Bash Variables. (line 629)
|
||||
* SHELL: Bash Variables. (line 638)
|
||||
* SHELLOPTS: Bash Variables. (line 643)
|
||||
* SHLVL: Bash Variables. (line 652)
|
||||
* show-all-if-ambiguous: Readline Init File Syntax.
|
||||
(line 278)
|
||||
* show-all-if-unmodified: Readline Init File Syntax.
|
||||
@@ -11596,13 +11597,13 @@ D.3 Parameter and Variable Index
|
||||
(line 293)
|
||||
* skip-completed-text: Readline Init File Syntax.
|
||||
(line 299)
|
||||
* SRANDOM: Bash Variables. (line 656)
|
||||
* SRANDOM: Bash Variables. (line 657)
|
||||
* TEXTDOMAIN: Locale Translation. (line 15)
|
||||
* TEXTDOMAINDIR: Locale Translation. (line 15)
|
||||
* TIMEFORMAT: Bash Variables. (line 665)
|
||||
* TMOUT: Bash Variables. (line 703)
|
||||
* TMPDIR: Bash Variables. (line 715)
|
||||
* UID: Bash Variables. (line 719)
|
||||
* TIMEFORMAT: Bash Variables. (line 666)
|
||||
* TMOUT: Bash Variables. (line 704)
|
||||
* TMPDIR: Bash Variables. (line 716)
|
||||
* UID: Bash Variables. (line 720)
|
||||
* vi-cmd-mode-string: Readline Init File Syntax.
|
||||
(line 312)
|
||||
* vi-ins-mode-string: Readline Init File Syntax.
|
||||
@@ -11979,137 +11980,137 @@ D.5 Concept Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top893
|
||||
Node: Introduction2809
|
||||
Node: What is Bash?3025
|
||||
Node: What is a shell?4139
|
||||
Node: Definitions6677
|
||||
Node: Basic Shell Features9628
|
||||
Node: Shell Syntax10847
|
||||
Node: Shell Operation11873
|
||||
Node: Quoting13166
|
||||
Node: Escape Character14466
|
||||
Node: Single Quotes14951
|
||||
Node: Double Quotes15299
|
||||
Node: ANSI-C Quoting16577
|
||||
Node: Locale Translation17836
|
||||
Node: Comments18989
|
||||
Node: Shell Commands19607
|
||||
Node: Reserved Words20545
|
||||
Node: Simple Commands21301
|
||||
Node: Pipelines21955
|
||||
Node: Lists24887
|
||||
Node: Compound Commands26678
|
||||
Node: Looping Constructs27690
|
||||
Node: Conditional Constructs30185
|
||||
Node: Command Grouping41756
|
||||
Node: Coprocesses43235
|
||||
Node: GNU Parallel45138
|
||||
Node: Shell Functions49439
|
||||
Node: Shell Parameters56646
|
||||
Node: Positional Parameters61059
|
||||
Node: Special Parameters61959
|
||||
Node: Shell Expansions65183
|
||||
Node: Brace Expansion67306
|
||||
Node: Tilde Expansion70029
|
||||
Node: Shell Parameter Expansion72646
|
||||
Node: Command Substitution87775
|
||||
Node: Arithmetic Expansion89130
|
||||
Node: Process Substitution90062
|
||||
Node: Word Splitting91182
|
||||
Node: Filename Expansion93126
|
||||
Node: Pattern Matching95675
|
||||
Node: Quote Removal99661
|
||||
Node: Redirections99956
|
||||
Node: Executing Commands109526
|
||||
Node: Simple Command Expansion110196
|
||||
Node: Command Search and Execution112150
|
||||
Node: Command Execution Environment114526
|
||||
Node: Environment117510
|
||||
Node: Exit Status119169
|
||||
Node: Signals120839
|
||||
Node: Shell Scripts122806
|
||||
Node: Shell Builtin Commands125818
|
||||
Node: Bourne Shell Builtins127856
|
||||
Node: Bash Builtins148785
|
||||
Node: Modifying Shell Behavior178720
|
||||
Node: The Set Builtin179065
|
||||
Node: The Shopt Builtin189478
|
||||
Node: Special Builtins204388
|
||||
Node: Shell Variables205367
|
||||
Node: Bourne Shell Variables205804
|
||||
Node: Bash Variables207908
|
||||
Node: Bash Features240478
|
||||
Node: Invoking Bash241491
|
||||
Node: Bash Startup Files247504
|
||||
Node: Interactive Shells252607
|
||||
Node: What is an Interactive Shell?253017
|
||||
Node: Is this Shell Interactive?253666
|
||||
Node: Interactive Shell Behavior254481
|
||||
Node: Bash Conditional Expressions257995
|
||||
Node: Shell Arithmetic262572
|
||||
Node: Aliases265512
|
||||
Node: Arrays268132
|
||||
Node: The Directory Stack274141
|
||||
Node: Directory Stack Builtins274925
|
||||
Node: Controlling the Prompt277893
|
||||
Node: The Restricted Shell280843
|
||||
Node: Bash POSIX Mode283437
|
||||
Node: Shell Compatibility Mode294473
|
||||
Node: Job Control301129
|
||||
Node: Job Control Basics301589
|
||||
Node: Job Control Builtins306585
|
||||
Node: Job Control Variables311985
|
||||
Node: Command Line Editing313141
|
||||
Node: Introduction and Notation314812
|
||||
Node: Readline Interaction316435
|
||||
Node: Readline Bare Essentials317626
|
||||
Node: Readline Movement Commands319409
|
||||
Node: Readline Killing Commands320369
|
||||
Node: Readline Arguments322287
|
||||
Node: Searching323331
|
||||
Node: Readline Init File325517
|
||||
Node: Readline Init File Syntax326776
|
||||
Node: Conditional Init Constructs347315
|
||||
Node: Sample Init File351511
|
||||
Node: Bindable Readline Commands354635
|
||||
Node: Commands For Moving355839
|
||||
Node: Commands For History357890
|
||||
Node: Commands For Text362683
|
||||
Node: Commands For Killing366332
|
||||
Node: Numeric Arguments369365
|
||||
Node: Commands For Completion370504
|
||||
Node: Keyboard Macros374695
|
||||
Node: Miscellaneous Commands375382
|
||||
Node: Readline vi Mode381066
|
||||
Node: Programmable Completion381973
|
||||
Node: Programmable Completion Builtins389753
|
||||
Node: A Programmable Completion Example400448
|
||||
Node: Using History Interactively405695
|
||||
Node: Bash History Facilities406379
|
||||
Node: Bash History Builtins409384
|
||||
Node: History Interaction414113
|
||||
Node: Event Designators417733
|
||||
Node: Word Designators419087
|
||||
Node: Modifiers420847
|
||||
Node: Installing Bash422658
|
||||
Node: Basic Installation423795
|
||||
Node: Compilers and Options427053
|
||||
Node: Compiling For Multiple Architectures427794
|
||||
Node: Installation Names429487
|
||||
Node: Specifying the System Type430305
|
||||
Node: Sharing Defaults431021
|
||||
Node: Operation Controls431694
|
||||
Node: Optional Features432652
|
||||
Node: Reporting Bugs443170
|
||||
Node: Major Differences From The Bourne Shell444364
|
||||
Node: GNU Free Documentation License461216
|
||||
Node: Indexes486393
|
||||
Node: Builtin Index486847
|
||||
Node: Reserved Word Index493674
|
||||
Node: Variable Index496122
|
||||
Node: Function Index512019
|
||||
Node: Concept Index525529
|
||||
Node: Top899
|
||||
Node: Introduction2821
|
||||
Node: What is Bash?3037
|
||||
Node: What is a shell?4151
|
||||
Node: Definitions6689
|
||||
Node: Basic Shell Features9640
|
||||
Node: Shell Syntax10859
|
||||
Node: Shell Operation11885
|
||||
Node: Quoting13178
|
||||
Node: Escape Character14478
|
||||
Node: Single Quotes14963
|
||||
Node: Double Quotes15311
|
||||
Node: ANSI-C Quoting16589
|
||||
Node: Locale Translation17848
|
||||
Node: Comments19001
|
||||
Node: Shell Commands19619
|
||||
Node: Reserved Words20557
|
||||
Node: Simple Commands21313
|
||||
Node: Pipelines21967
|
||||
Node: Lists24899
|
||||
Node: Compound Commands26690
|
||||
Node: Looping Constructs27702
|
||||
Node: Conditional Constructs30197
|
||||
Node: Command Grouping41768
|
||||
Node: Coprocesses43247
|
||||
Node: GNU Parallel45150
|
||||
Node: Shell Functions49451
|
||||
Node: Shell Parameters56658
|
||||
Node: Positional Parameters61071
|
||||
Node: Special Parameters61971
|
||||
Node: Shell Expansions65195
|
||||
Node: Brace Expansion67318
|
||||
Node: Tilde Expansion70041
|
||||
Node: Shell Parameter Expansion72658
|
||||
Node: Command Substitution87787
|
||||
Node: Arithmetic Expansion89142
|
||||
Node: Process Substitution90074
|
||||
Node: Word Splitting91194
|
||||
Node: Filename Expansion93138
|
||||
Node: Pattern Matching95687
|
||||
Node: Quote Removal99673
|
||||
Node: Redirections99968
|
||||
Node: Executing Commands109538
|
||||
Node: Simple Command Expansion110208
|
||||
Node: Command Search and Execution112162
|
||||
Node: Command Execution Environment114538
|
||||
Node: Environment117522
|
||||
Node: Exit Status119181
|
||||
Node: Signals120851
|
||||
Node: Shell Scripts122818
|
||||
Node: Shell Builtin Commands125830
|
||||
Node: Bourne Shell Builtins127868
|
||||
Node: Bash Builtins148797
|
||||
Node: Modifying Shell Behavior178732
|
||||
Node: The Set Builtin179077
|
||||
Node: The Shopt Builtin189490
|
||||
Node: Special Builtins204400
|
||||
Node: Shell Variables205379
|
||||
Node: Bourne Shell Variables205816
|
||||
Node: Bash Variables207920
|
||||
Node: Bash Features240554
|
||||
Node: Invoking Bash241567
|
||||
Node: Bash Startup Files247580
|
||||
Node: Interactive Shells252683
|
||||
Node: What is an Interactive Shell?253093
|
||||
Node: Is this Shell Interactive?253742
|
||||
Node: Interactive Shell Behavior254557
|
||||
Node: Bash Conditional Expressions258071
|
||||
Node: Shell Arithmetic262648
|
||||
Node: Aliases265588
|
||||
Node: Arrays268208
|
||||
Node: The Directory Stack274217
|
||||
Node: Directory Stack Builtins275001
|
||||
Node: Controlling the Prompt277969
|
||||
Node: The Restricted Shell280919
|
||||
Node: Bash POSIX Mode283513
|
||||
Node: Shell Compatibility Mode294549
|
||||
Node: Job Control301205
|
||||
Node: Job Control Basics301665
|
||||
Node: Job Control Builtins306661
|
||||
Node: Job Control Variables312061
|
||||
Node: Command Line Editing313217
|
||||
Node: Introduction and Notation314888
|
||||
Node: Readline Interaction316511
|
||||
Node: Readline Bare Essentials317702
|
||||
Node: Readline Movement Commands319485
|
||||
Node: Readline Killing Commands320445
|
||||
Node: Readline Arguments322363
|
||||
Node: Searching323407
|
||||
Node: Readline Init File325593
|
||||
Node: Readline Init File Syntax326852
|
||||
Node: Conditional Init Constructs347391
|
||||
Node: Sample Init File351587
|
||||
Node: Bindable Readline Commands354711
|
||||
Node: Commands For Moving355915
|
||||
Node: Commands For History357966
|
||||
Node: Commands For Text362759
|
||||
Node: Commands For Killing366408
|
||||
Node: Numeric Arguments369441
|
||||
Node: Commands For Completion370580
|
||||
Node: Keyboard Macros374771
|
||||
Node: Miscellaneous Commands375458
|
||||
Node: Readline vi Mode381142
|
||||
Node: Programmable Completion382049
|
||||
Node: Programmable Completion Builtins389829
|
||||
Node: A Programmable Completion Example400524
|
||||
Node: Using History Interactively405771
|
||||
Node: Bash History Facilities406455
|
||||
Node: Bash History Builtins409460
|
||||
Node: History Interaction414189
|
||||
Node: Event Designators417809
|
||||
Node: Word Designators419163
|
||||
Node: Modifiers420923
|
||||
Node: Installing Bash422734
|
||||
Node: Basic Installation423871
|
||||
Node: Compilers and Options427129
|
||||
Node: Compiling For Multiple Architectures427870
|
||||
Node: Installation Names429563
|
||||
Node: Specifying the System Type430381
|
||||
Node: Sharing Defaults431097
|
||||
Node: Operation Controls431770
|
||||
Node: Optional Features432728
|
||||
Node: Reporting Bugs443246
|
||||
Node: Major Differences From The Bourne Shell444440
|
||||
Node: GNU Free Documentation License461292
|
||||
Node: Indexes486469
|
||||
Node: Builtin Index486923
|
||||
Node: Reserved Word Index493750
|
||||
Node: Variable Index496198
|
||||
Node: Function Index512095
|
||||
Node: Concept Index525605
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
Binary file not shown.
+98
-95
@@ -1,7 +1,7 @@
|
||||
%!PS-Adobe-2.0
|
||||
%%Creator: dvips(k) 5.999 Copyright 2019 Radical Eye Software
|
||||
%%Title: bashref.dvi
|
||||
%%CreationDate: Mon Sep 7 13:52:24 2020
|
||||
%%CreationDate: Thu Oct 1 18:49:31 2020
|
||||
%%Pages: 189
|
||||
%%PageOrder: Ascend
|
||||
%%BoundingBox: 0 0 612 792
|
||||
@@ -12,7 +12,7 @@
|
||||
%DVIPSWebPage: (www.radicaleye.com)
|
||||
%DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
|
||||
%DVIPSParameters: dpi=600
|
||||
%DVIPSSource: TeX output 2020.09.07:0952
|
||||
%DVIPSSource: TeX output 2020.10.01:1449
|
||||
%%BeginProcSet: tex.pro 0 0
|
||||
%!
|
||||
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
|
||||
@@ -7614,23 +7614,24 @@ ifelse
|
||||
TeXDict begin 1 0 bop 150 1318 a Fv(Bash)64 b(Reference)j(Man)-5
|
||||
b(ual)p 150 1385 3600 34 v 2361 1481 a Fu(Reference)31
|
||||
b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(5.1,)g(for)f
|
||||
Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.1.)3252 1697 y(August)f(2020)150
|
||||
4927 y Fs(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
|
||||
b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
|
||||
b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
|
||||
Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.1.)3118 1697 y(Septem)m(b)s(er)f
|
||||
(2020)150 4927 y Fs(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11
|
||||
b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068
|
||||
y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
|
||||
b(oundation)p 150 5141 3600 17 v eop end
|
||||
%%Page: 2 2
|
||||
TeXDict begin 2 1 bop 150 4279 a Fu(This)35 b(text)h(is)g(a)g(brief)f
|
||||
(description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
|
||||
(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.1,)c(25)f(August)f
|
||||
(2020\).)150 4523 y(This)e(is)g(Edition)h(5.1,)h(last)f(up)s(dated)e
|
||||
(25)i(August)f(2020,)j(of)e Fr(The)f(GNU)h(Bash)f(Reference)h(Man)m
|
||||
(ual)p Fu(,)h(for)150 4633 y Ft(Bash)p Fu(,)f(V)-8 b(ersion)31
|
||||
b(5.1.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767
|
||||
y Fq(\015)f Fu(1988{2018)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
|
||||
b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h
|
||||
(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s
|
||||
(cumen)m(t)f(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
|
||||
(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.1,)c(23)f(Septem)m(b)s
|
||||
(er)f(2020\).)150 4523 y(This)e(is)h(Edition)f(5.1,)j(last)e(up)s
|
||||
(dated)f(23)h(Septem)m(b)s(er)f(2020,)j(of)e Fr(The)f(GNU)i(Bash)e
|
||||
(Reference)i(Man)m(ual)p Fu(,)150 4633 y(for)g Ft(Bash)p
|
||||
Fu(,)g(V)-8 b(ersion)31 b(5.1.)150 4767 y(Cop)m(yrigh)m(t)602
|
||||
4764 y(c)577 4767 y Fq(\015)f Fu(1988{2018)35 b(F)-8
|
||||
b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390
|
||||
4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
|
||||
b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
|
||||
(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
|
||||
b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
|
||||
b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
|
||||
b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
|
||||
@@ -13762,124 +13763,126 @@ b(in)f(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)f(starts)h(with)f
|
||||
(v)-5 b(alue)630 2466 y(`)p Ft(t)p Fu(',)36 b(it)f(assumes)f(that)h
|
||||
(the)g(shell)f(is)h(running)e(in)h(an)g(Emacs)h(shell)g(bu\013er)e(and)
|
||||
h(disables)630 2576 y(line)d(editing.)150 2734 y Ft(ENV)336
|
||||
b Fu(Similar)35 b(to)g Ft(BASH_ENV)p Fu(;)h(used)e(when)g(the)h(shell)g
|
||||
(is)g(in)m(v)m(ok)m(ed)h(in)e Fm(posix)h Fu(Mo)s(de)g(\(see)g(Sec-)630
|
||||
2844 y(tion)c(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(101\).)150
|
||||
3002 y Ft(EPOCHREALTIME)630 3112 y Fu(Eac)m(h)38 b(time)f(this)g
|
||||
b Fu(Expanded)30 b(and)h(executed)h(similarlt)m(y)g(to)g
|
||||
Ft(BASH_ENV)d Fu(\(see)k(Section)f(6.2)g([Bash)g(Startup)630
|
||||
2844 y(Files],)39 b(page)e(88\))h(when)d(an)h(in)m(teractiv)m(e)j
|
||||
(shell)d(is)h(in)m(v)m(ok)m(ed)g(in)f Fm(posix)g Fu(Mo)s(de)g(\(see)h
|
||||
(Sec-)630 2953 y(tion)31 b(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g
|
||||
(101\).)150 3112 y Ft(EPOCHREALTIME)630 3221 y Fu(Eac)m(h)38
|
||||
b(time)f(this)g(parameter)h(is)f(referenced,)i(it)f(expands)e(to)i(the)
|
||||
f(n)m(um)m(b)s(er)f(of)h(seconds)630 3331 y(since)f(the)g(Unix)f(Ep)s
|
||||
(o)s(c)m(h)g(as)h(a)g(\015oating)h(p)s(oin)m(t)f(v)-5
|
||||
b(alue)36 b(with)f(micro-second)i(gran)m(ularit)m(y)630
|
||||
3440 y(\(see)42 b(the)g(do)s(cumen)m(tation)g(for)f(the)g(C)g(library)g
|
||||
(function)g Fr(time)47 b Fu(for)41 b(the)h(de\014nition)f(of)630
|
||||
3550 y(Ep)s(o)s(c)m(h\).)82 b(Assignmen)m(ts)44 b(to)h
|
||||
Ft(EPOCHREALTIME)c Fu(are)j(ignored.)83 b(If)43 b Ft(EPOCHREALTIME)e
|
||||
Fu(is)630 3660 y(unset,)30 b(it)h(loses)g(its)g(sp)s(ecial)g(prop)s
|
||||
(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f(reset.)150
|
||||
3818 y Ft(EPOCHSECONDS)630 3927 y Fu(Eac)m(h)38 b(time)f(this)g
|
||||
(parameter)h(is)f(referenced,)i(it)f(expands)e(to)i(the)f(n)m(um)m(b)s
|
||||
(er)f(of)h(seconds)630 3221 y(since)f(the)g(Unix)f(Ep)s(o)s(c)m(h)g(as)
|
||||
h(a)g(\015oating)h(p)s(oin)m(t)f(v)-5 b(alue)36 b(with)f(micro-second)i
|
||||
(gran)m(ularit)m(y)630 3331 y(\(see)42 b(the)g(do)s(cumen)m(tation)g
|
||||
(for)f(the)g(C)g(library)g(function)g Fr(time)47 b Fu(for)41
|
||||
b(the)h(de\014nition)f(of)630 3440 y(Ep)s(o)s(c)m(h\).)82
|
||||
b(Assignmen)m(ts)44 b(to)h Ft(EPOCHREALTIME)c Fu(are)j(ignored.)83
|
||||
b(If)43 b Ft(EPOCHREALTIME)e Fu(is)630 3550 y(unset,)30
|
||||
b(it)h(loses)g(its)g(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h
|
||||
(is)g(subsequen)m(tly)f(reset.)150 3708 y Ft(EPOCHSECONDS)630
|
||||
3818 y Fu(Eac)m(h)38 b(time)f(this)g(parameter)h(is)f(referenced,)i(it)
|
||||
f(expands)e(to)i(the)f(n)m(um)m(b)s(er)f(of)h(seconds)630
|
||||
3927 y(since)e(the)g(Unix)f(Ep)s(o)s(c)m(h)g(\(see)i(the)f(do)s(cumen)m
|
||||
(tation)g(for)g(the)f(C)h(library)f(function)g Fr(time)630
|
||||
4037 y Fu(for)41 b(the)g(de\014nition)g(of)h(Ep)s(o)s(c)m(h\).)73
|
||||
b(Assignmen)m(ts)41 b(to)h Ft(EPOCHSECONDS)c Fu(are)k(ignored.)73
|
||||
b(If)630 4147 y Ft(EPOCHSECONDS)27 b Fu(is)j(unset,)g(it)g(loses)h(its)
|
||||
g(sp)s(ecial)f(prop)s(erties,)g(ev)m(en)h(if)f(it)g(is)g(subsequen)m
|
||||
(tly)630 4256 y(reset.)150 4415 y Ft(EUID)288 b Fu(The)30
|
||||
b(n)m(umeric)g(e\013ectiv)m(e)j(user)d(id)g(of)g(the)h(curren)m(t)f
|
||||
(user.)40 b(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8
|
||||
b(.)150 4573 y Ft(EXECIGNORE)630 4682 y Fu(A)29 b(colon-separated)h
|
||||
(list)f(of)g(shell)g(patterns)f(\(see)i(Section)f(3.5.8.1)i([P)m
|
||||
(attern)f(Matc)m(hing],)630 4792 y(page)j(33\))g(de\014ning)e(the)h
|
||||
(list)g(of)g(\014lenames)g(to)g(b)s(e)g(ignored)g(b)m(y)f(command)h
|
||||
(searc)m(h)g(using)630 4902 y Ft(PATH)p Fu(.)k(Files)22
|
||||
b(whose)f(full)g(pathnames)g(matc)m(h)h(one)f(of)g(these)h(patterns)e
|
||||
(are)i(not)f(considered)630 5011 y(executable)j(\014les)e(for)g(the)h
|
||||
(purp)s(oses)d(of)j(completion)h(and)d(command)i(execution)g(via)g
|
||||
Ft(PATH)630 5121 y Fu(lo)s(okup.)56 b(This)35 b(do)s(es)g(not)h
|
||||
(a\013ect)i(the)d(b)s(eha)m(vior)h(of)g(the)g Ft([)p
|
||||
Fu(,)h Ft(test)p Fu(,)f(and)f Ft([[)g Fu(commands.)630
|
||||
5230 y(F)-8 b(ull)42 b(pathnames)e(in)h(the)g(command)g(hash)f(table)i
|
||||
(are)g(not)f(sub)5 b(ject)41 b(to)g Ft(EXECIGNORE)p Fu(.)630
|
||||
5340 y(Use)30 b(this)f(v)-5 b(ariable)30 b(to)g(ignore)g(shared)f
|
||||
(library)g(\014les)g(that)h(ha)m(v)m(e)h(the)f(executable)h(bit)e(set,)
|
||||
p eop end
|
||||
(er)f(of)h(seconds)630 4037 y(since)e(the)g(Unix)f(Ep)s(o)s(c)m(h)g
|
||||
(\(see)i(the)f(do)s(cumen)m(tation)g(for)g(the)f(C)h(library)f
|
||||
(function)g Fr(time)630 4147 y Fu(for)41 b(the)g(de\014nition)g(of)h
|
||||
(Ep)s(o)s(c)m(h\).)73 b(Assignmen)m(ts)41 b(to)h Ft(EPOCHSECONDS)c
|
||||
Fu(are)k(ignored.)73 b(If)630 4256 y Ft(EPOCHSECONDS)27
|
||||
b Fu(is)j(unset,)g(it)g(loses)h(its)g(sp)s(ecial)f(prop)s(erties,)g(ev)
|
||||
m(en)h(if)f(it)g(is)g(subsequen)m(tly)630 4366 y(reset.)150
|
||||
4524 y Ft(EUID)288 b Fu(The)30 b(n)m(umeric)g(e\013ectiv)m(e)j(user)d
|
||||
(id)g(of)g(the)h(curren)m(t)f(user.)40 b(This)30 b(v)-5
|
||||
b(ariable)31 b(is)f(readonly)-8 b(.)150 4682 y Ft(EXECIGNORE)630
|
||||
4792 y Fu(A)29 b(colon-separated)h(list)f(of)g(shell)g(patterns)f
|
||||
(\(see)i(Section)f(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)630
|
||||
4902 y(page)j(33\))g(de\014ning)e(the)h(list)g(of)g(\014lenames)g(to)g
|
||||
(b)s(e)g(ignored)g(b)m(y)f(command)h(searc)m(h)g(using)630
|
||||
5011 y Ft(PATH)p Fu(.)k(Files)22 b(whose)f(full)g(pathnames)g(matc)m(h)
|
||||
h(one)f(of)g(these)h(patterns)e(are)i(not)f(considered)630
|
||||
5121 y(executable)j(\014les)e(for)g(the)h(purp)s(oses)d(of)j
|
||||
(completion)h(and)d(command)i(execution)g(via)g Ft(PATH)630
|
||||
5230 y Fu(lo)s(okup.)56 b(This)35 b(do)s(es)g(not)h(a\013ect)i(the)d(b)
|
||||
s(eha)m(vior)h(of)g(the)g Ft([)p Fu(,)h Ft(test)p Fu(,)f(and)f
|
||||
Ft([[)g Fu(commands.)630 5340 y(F)-8 b(ull)42 b(pathnames)e(in)h(the)g
|
||||
(command)g(hash)f(table)i(are)g(not)f(sub)5 b(ject)41
|
||||
b(to)g Ft(EXECIGNORE)p Fu(.)p eop end
|
||||
%%Page: 79 85
|
||||
TeXDict begin 79 84 bop 150 -116 a Fu(Chapter)30 b(5:)41
|
||||
b(Shell)30 b(V)-8 b(ariables)2459 b(79)630 299 y(but)36
|
||||
b(are)h(not)g(executable)i(\014les.)60 b(The)36 b(pattern)h(matc)m
|
||||
(hing)h(honors)e(the)h(setting)h(of)f(the)630 408 y Ft(extglob)28
|
||||
b Fu(shell)j(option.)150 583 y Ft(FCEDIT)192 b Fu(The)30
|
||||
b(editor)h(used)e(as)i(a)g(default)f(b)m(y)h(the)f Ft(-e)g
|
||||
Fu(option)h(to)g(the)f Ft(fc)g Fu(builtin)g(command.)150
|
||||
757 y Ft(FIGNORE)144 b Fu(A)35 b(colon-separated)i(list)f(of)g
|
||||
b(Shell)30 b(V)-8 b(ariables)2459 b(79)630 299 y(Use)30
|
||||
b(this)f(v)-5 b(ariable)30 b(to)g(ignore)g(shared)f(library)g(\014les)g
|
||||
(that)h(ha)m(v)m(e)h(the)f(executable)h(bit)e(set,)630
|
||||
408 y(but)36 b(are)h(not)g(executable)i(\014les.)60 b(The)36
|
||||
b(pattern)h(matc)m(hing)h(honors)e(the)h(setting)h(of)f(the)630
|
||||
518 y Ft(extglob)28 b Fu(shell)j(option.)150 679 y Ft(FCEDIT)192
|
||||
b Fu(The)30 b(editor)h(used)e(as)i(a)g(default)f(b)m(y)h(the)f
|
||||
Ft(-e)g Fu(option)h(to)g(the)f Ft(fc)g Fu(builtin)g(command.)150
|
||||
840 y Ft(FIGNORE)144 b Fu(A)35 b(colon-separated)i(list)f(of)g
|
||||
(su\016xes)e(to)i(ignore)g(when)e(p)s(erforming)g(\014lename)i(comple-)
|
||||
630 866 y(tion.)k(A)27 b(\014lename)g(whose)f(su\016x)g(matc)m(hes)i
|
||||
630 950 y(tion.)k(A)27 b(\014lename)g(whose)f(su\016x)g(matc)m(hes)i
|
||||
(one)f(of)g(the)g(en)m(tries)g(in)g Ft(FIGNORE)d Fu(is)j(excluded)630
|
||||
976 y(from)j(the)g(list)h(of)g(matc)m(hed)g(\014lenames.)41
|
||||
1060 y(from)j(the)g(list)h(of)g(matc)m(hed)g(\014lenames.)41
|
||||
b(A)30 b(sample)h(v)-5 b(alue)31 b(is)f(`)p Ft(.o:~)p
|
||||
Fu(')150 1150 y Ft(FUNCNAME)96 b Fu(An)35 b(arra)m(y)i(v)-5
|
||||
Fu(')150 1221 y Ft(FUNCNAME)96 b Fu(An)35 b(arra)m(y)i(v)-5
|
||||
b(ariable)36 b(con)m(taining)h(the)f(names)g(of)g(all)g(shell)g
|
||||
(functions)g(curren)m(tly)f(in)h(the)630 1259 y(execution)g(call)h
|
||||
(functions)g(curren)m(tly)f(in)h(the)630 1330 y(execution)g(call)h
|
||||
(stac)m(k.)57 b(The)34 b(elemen)m(t)j(with)e(index)g(0)h(is)f(the)g
|
||||
(name)h(of)f(an)m(y)h(curren)m(tly-)630 1369 y(executing)f(shell)f
|
||||
(name)h(of)f(an)m(y)h(curren)m(tly-)630 1440 y(executing)f(shell)f
|
||||
(function.)51 b(The)34 b(b)s(ottom-most)h(elemen)m(t)g(\(the)g(one)f
|
||||
(with)g(the)g(highest)630 1479 y(index\))e(is)h Ft("main")p
|
||||
(with)g(the)g(highest)630 1549 y(index\))e(is)h Ft("main")p
|
||||
Fu(.)44 b(This)32 b(v)-5 b(ariable)33 b(exists)g(only)g(when)e(a)i
|
||||
(shell)f(function)g(is)g(executing.)630 1588 y(Assignmen)m(ts)23
|
||||
(shell)f(function)g(is)g(executing.)630 1659 y(Assignmen)m(ts)23
|
||||
b(to)f Ft(FUNCNAME)e Fu(ha)m(v)m(e)k(no)e(e\013ect.)39
|
||||
b(If)22 b Ft(FUNCNAME)e Fu(is)i(unset,)h(it)g(loses)g(its)f(sp)s(ecial)
|
||||
630 1698 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is)g(subsequen)m
|
||||
(tly)f(reset.)630 1840 y(This)h(v)-5 b(ariable)32 b(can)f(b)s(e)g(used)
|
||||
630 1769 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is)g(subsequen)m
|
||||
(tly)f(reset.)630 1904 y(This)h(v)-5 b(ariable)32 b(can)f(b)s(e)g(used)
|
||||
g(with)g Ft(BASH_LINENO)d Fu(and)j Ft(BASH_SOURCE)p Fu(.)40
|
||||
b(Eac)m(h)32 b(elemen)m(t)630 1949 y(of)g Ft(FUNCNAME)d
|
||||
b(Eac)m(h)32 b(elemen)m(t)630 2014 y(of)g Ft(FUNCNAME)d
|
||||
Fu(has)j(corresp)s(onding)e(elemen)m(ts)j(in)f Ft(BASH_LINENO)c
|
||||
Fu(and)k Ft(BASH_SOURCE)c Fu(to)630 2059 y(describ)s(e)39
|
||||
Fu(and)k Ft(BASH_SOURCE)c Fu(to)630 2123 y(describ)s(e)39
|
||||
b(the)h(call)h(stac)m(k.)70 b(F)-8 b(or)41 b(instance,)i
|
||||
Ft(${FUNCNAME[$i]})35 b Fu(w)m(as)41 b(called)f(from)g(the)630
|
||||
2168 y(\014le)27 b Ft(${BASH_SOURCE[$i+1]})21 b Fu(at)27
|
||||
2233 y(\014le)27 b Ft(${BASH_SOURCE[$i+1]})21 b Fu(at)27
|
||||
b(line)h(n)m(um)m(b)s(er)d Ft(${BASH_LINENO[$i]})p Fu(.)34
|
||||
b(The)27 b Ft(caller)630 2278 y Fu(builtin)j(displa)m(ys)g(the)h
|
||||
b(The)27 b Ft(caller)630 2342 y Fu(builtin)j(displa)m(ys)g(the)h
|
||||
(curren)m(t)f(call)i(stac)m(k)g(using)d(this)i(information.)150
|
||||
2452 y Ft(FUNCNEST)96 b Fu(If)34 b(set)i(to)f(a)h(n)m(umeric)e(v)-5
|
||||
2504 y Ft(FUNCNEST)96 b Fu(If)34 b(set)i(to)f(a)h(n)m(umeric)e(v)-5
|
||||
b(alue)36 b(greater)g(than)e(0,)j(de\014nes)d(a)h(maxim)m(um)g
|
||||
(function)g(nesting)630 2562 y(lev)m(el.)42 b(F)-8 b(unction)29
|
||||
(function)g(nesting)630 2613 y(lev)m(el.)42 b(F)-8 b(unction)29
|
||||
b(in)m(v)m(o)s(cations)h(that)f(exceed)h(this)e(nesting)h(lev)m(el)h
|
||||
(will)f(cause)g(the)f(curren)m(t)630 2671 y(command)i(to)h(ab)s(ort.)
|
||||
150 2845 y Ft(GLOBIGNORE)630 2955 y Fu(A)k(colon-separated)i(list)f(of)
|
||||
(will)f(cause)g(the)f(curren)m(t)630 2723 y(command)i(to)h(ab)s(ort.)
|
||||
150 2884 y Ft(GLOBIGNORE)630 2993 y Fu(A)k(colon-separated)i(list)f(of)
|
||||
f(patterns)g(de\014ning)f(the)i(set)f(of)g(\014le)h(names)f(to)g(b)s(e)
|
||||
g(ignored)630 3064 y(b)m(y)28 b(\014lename)h(expansion.)40
|
||||
g(ignored)630 3103 y(b)m(y)28 b(\014lename)h(expansion.)40
|
||||
b(If)28 b(a)h(\014le)g(name)g(matc)m(hed)g(b)m(y)g(a)g(\014lename)f
|
||||
(expansion)h(pattern)630 3174 y(also)k(matc)m(hes)g(one)f(of)g(the)g
|
||||
(expansion)h(pattern)630 3213 y(also)k(matc)m(hes)g(one)f(of)g(the)g
|
||||
(patterns)g(in)f Ft(GLOBIGNORE)p Fu(,)f(it)i(is)g(remo)m(v)m(ed)h(from)
|
||||
e(the)h(list)h(of)630 3284 y(matc)m(hes.)41 b(The)27
|
||||
e(the)h(list)h(of)630 3322 y(matc)m(hes.)41 b(The)27
|
||||
b(pattern)g(matc)m(hing)h(honors)f(the)g(setting)i(of)e(the)h
|
||||
Ft(extglob)d Fu(shell)i(option.)150 3458 y Ft(GROUPS)192
|
||||
Ft(extglob)d Fu(shell)i(option.)150 3483 y Ft(GROUPS)192
|
||||
b Fu(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(con)m(taining)g(the)f(list)
|
||||
h(of)f(groups)g(of)g(whic)m(h)f(the)i(curren)m(t)e(user)h(is)g(a)630
|
||||
3567 y(mem)m(b)s(er.)41 b(Assignmen)m(ts)30 b(to)i Ft(GROUPS)d
|
||||
3593 y(mem)m(b)s(er.)41 b(Assignmen)m(ts)30 b(to)i Ft(GROUPS)d
|
||||
Fu(ha)m(v)m(e)i(no)g(e\013ect.)42 b(If)30 b Ft(GROUPS)f
|
||||
Fu(is)i(unset,)f(it)h(loses)h(its)630 3677 y(sp)s(ecial)f(prop)s
|
||||
Fu(is)i(unset,)f(it)h(loses)h(its)630 3703 y(sp)s(ecial)f(prop)s
|
||||
(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f(reset.)150
|
||||
3851 y Ft(histchars)630 3960 y Fu(Up)c(to)g(three)g(c)m(haracters)i
|
||||
3864 y Ft(histchars)630 3973 y Fu(Up)c(to)g(three)g(c)m(haracters)i
|
||||
(whic)m(h)d(con)m(trol)j(history)d(expansion,)i(quic)m(k)g
|
||||
(substitution,)g(and)630 4070 y(tok)m(enization)k(\(see)f(Section)f
|
||||
(substitution,)g(and)630 4083 y(tok)m(enization)k(\(see)f(Section)f
|
||||
(9.3)h([History)f(In)m(teraction],)i(page)f(148\).)41
|
||||
b(The)29 b(\014rst)e(c)m(harac-)630 4180 y(ter)j(is)f(the)g
|
||||
b(The)29 b(\014rst)e(c)m(harac-)630 4193 y(ter)j(is)f(the)g
|
||||
Fr(history)g(expansion)g Fu(c)m(haracter,)j(that)e(is,)f(the)h(c)m
|
||||
(haracter)h(whic)m(h)d(signi\014es)i(the)630 4289 y(start)25
|
||||
(haracter)h(whic)m(h)d(signi\014es)i(the)630 4302 y(start)25
|
||||
b(of)f(a)h(history)f(expansion,)i(normally)e(`)p Ft(!)p
|
||||
Fu('.)39 b(The)24 b(second)g(c)m(haracter)i(is)e(the)g(c)m(haracter)630
|
||||
4399 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f
|
||||
4412 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f
|
||||
(seen)h(as)g(the)g(\014rst)f(c)m(haracter)j(on)e(a)g(line,)630
|
||||
4508 y(normally)27 b(`)p Ft(^)p Fu('.)39 b(The)26 b(optional)i(third)d
|
||||
4521 y(normally)27 b(`)p Ft(^)p Fu('.)39 b(The)26 b(optional)i(third)d
|
||||
(c)m(haracter)j(is)e(the)h(c)m(haracter)h(whic)m(h)e(indicates)h(that)
|
||||
630 4618 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h
|
||||
630 4631 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h
|
||||
(when)e(found)f(as)i(the)g(\014rst)f(c)m(haracter)i(of)f(a)630
|
||||
4728 y(w)m(ord,)i(usually)f(`)p Ft(#)p Fu('.)55 b(The)34
|
||||
4740 y(w)m(ord,)i(usually)f(`)p Ft(#)p Fu('.)55 b(The)34
|
||||
b(history)h(commen)m(t)h(c)m(haracter)h(causes)e(history)g
|
||||
(substitution)630 4837 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f
|
||||
(substitution)630 4850 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f
|
||||
(remaining)h(w)m(ords)f(on)h(the)f(line.)40 b(It)27 b(do)s(es)f(not)h
|
||||
(necessarily)g(cause)630 4947 y(the)k(shell)f(parser)g(to)h(treat)g
|
||||
(necessarily)g(cause)630 4960 y(the)k(shell)f(parser)g(to)h(treat)g
|
||||
(the)g(rest)g(of)f(the)h(line)f(as)h(a)g(commen)m(t.)150
|
||||
5121 y Ft(HISTCMD)144 b Fu(The)44 b(history)h(n)m(um)m(b)s(er,)j(or)d
|
||||
(index)g(in)f(the)h(history)g(list,)50 b(of)45 b(the)g(curren)m(t)g
|
||||
|
||||
+3
-1
@@ -5959,7 +5959,9 @@ starts with value @samp{t}, it assumes that the shell is running in an
|
||||
Emacs shell buffer and disables line editing.
|
||||
|
||||
@item ENV
|
||||
Similar to @code{BASH_ENV}; used when the shell is invoked in
|
||||
Expanded and executed similarlty to @code{BASH_ENV}
|
||||
(@pxref{Bash Startup Files})
|
||||
when an interactive shell is invoked in
|
||||
@sc{posix} Mode (@pxref{Bash POSIX Mode}).
|
||||
|
||||
@item EPOCHREALTIME
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
%!PS-Adobe-3.0
|
||||
%%Creator: groff version 1.22.4
|
||||
%%CreationDate: Mon Sep 7 09:52:16 2020
|
||||
%%CreationDate: Thu Oct 1 14:49:24 2020
|
||||
%%DocumentNeededResources: font Times-Roman
|
||||
%%+ font Times-Bold
|
||||
%%+ font Times-Italic
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
%!PS-Adobe-3.0
|
||||
%%Creator: groff version 1.22.4
|
||||
%%CreationDate: Mon Sep 7 09:52:16 2020
|
||||
%%CreationDate: Thu Oct 1 14:49:24 2020
|
||||
%%DocumentNeededResources: font Times-Roman
|
||||
%%+ font Times-Bold
|
||||
%%DocumentSuppliedResources: procset grops 1.22 4
|
||||
|
||||
+3
-3
@@ -2,10 +2,10 @@
|
||||
Copyright (C) 1988-2020 Free Software Foundation, Inc.
|
||||
@end ignore
|
||||
|
||||
@set LASTCHANGE Tue Aug 25 09:58:38 EDT 2020
|
||||
@set LASTCHANGE Wed Sep 23 09:28:04 EDT 2020
|
||||
|
||||
@set EDITION 5.1
|
||||
@set VERSION 5.1
|
||||
|
||||
@set UPDATED 25 August 2020
|
||||
@set UPDATED-MONTH August 2020
|
||||
@set UPDATED 23 September 2020
|
||||
@set UPDATED-MONTH September 2020
|
||||
|
||||
@@ -104,7 +104,7 @@ ALLPROG = print truefalse sleep finfo logname basename dirname fdflags \
|
||||
tty pathchk tee head mkdir rmdir mkfifo mktemp printenv id whoami \
|
||||
uname sync push ln unlink realpath strftime mypid setpgid seq rm \
|
||||
accept csv cut
|
||||
OTHERPROG = necho hello cat pushd stat
|
||||
OTHERPROG = necho hello cat pushd stat asort
|
||||
|
||||
all: $(SHOBJ_STATUS)
|
||||
|
||||
@@ -233,6 +233,9 @@ setpgid: setpgid.o
|
||||
stat: stat.o
|
||||
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ stat.o $(SHOBJ_LIBS)
|
||||
|
||||
asort: asort.o
|
||||
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ asort.o $(SHOBJ_LIBS)
|
||||
|
||||
# pushd is a special case. We use the same source that the builtin version
|
||||
# uses, with special compilation options.
|
||||
#
|
||||
@@ -318,3 +321,4 @@ setpgid.o: setpgid.c
|
||||
stat.o: stat.c
|
||||
fdflags.o: fdflags.c
|
||||
seq.o: seq.c
|
||||
asort.o: asort.c
|
||||
|
||||
@@ -0,0 +1,279 @@
|
||||
/*
|
||||
Copyright (C) 2020 Free Software Foundation, Inc.
|
||||
|
||||
Bash is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Bash is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Bash. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "bashtypes.h"
|
||||
#include "shell.h"
|
||||
#include "builtins.h"
|
||||
#include "common.h"
|
||||
#include "xmalloc.h"
|
||||
#include "bashgetopt.h"
|
||||
|
||||
typedef struct sort_element {
|
||||
ARRAY_ELEMENT *v; // used when sorting array in-place
|
||||
char *key; // used when sorting assoc array
|
||||
char *value; // points to value of array element or assoc entry
|
||||
double num; // used for numeric sort
|
||||
} sort_element;
|
||||
|
||||
static int reverse_flag;
|
||||
static int numeric_flag;
|
||||
|
||||
static int
|
||||
compare(const void *p1, const void *p2) {
|
||||
const sort_element e1 = *(sort_element *) p1;
|
||||
const sort_element e2 = *(sort_element *) p2;
|
||||
|
||||
if (numeric_flag) {
|
||||
if (reverse_flag)
|
||||
return (e2.num > e1.num) ? 1 : (e2.num < e1.num) ? -1 : 0;
|
||||
else
|
||||
return (e1.num > e2.num) ? 1 : (e1.num < e2.num) ? -1 : 0;
|
||||
}
|
||||
else {
|
||||
if (reverse_flag)
|
||||
return strcoll(e2.value, e1.value);
|
||||
else
|
||||
return strcoll(e1.value, e2.value);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
sort_index(SHELL_VAR *dest, SHELL_VAR *source) {
|
||||
HASH_TABLE *hash;
|
||||
BUCKET_CONTENTS *bucket;
|
||||
sort_element *sa;
|
||||
ARRAY *array, *dest_array;
|
||||
ARRAY_ELEMENT *ae;
|
||||
size_t i, j, n;
|
||||
char ibuf[INT_STRLEN_BOUND (intmax_t) + 1]; // used by fmtulong
|
||||
char *key;
|
||||
|
||||
dest_array = array_cell(dest);
|
||||
|
||||
if (assoc_p(source)) {
|
||||
hash = assoc_cell(source);
|
||||
n = hash->nentries;
|
||||
sa = xmalloc(n * sizeof(sort_element));
|
||||
i = 0;
|
||||
for ( j = 0; j < hash->nbuckets; ++j ) {
|
||||
bucket = hash->bucket_array[j];
|
||||
while ( bucket ) {
|
||||
sa[i].v = NULL;
|
||||
sa[i].key = bucket->key;
|
||||
if ( numeric_flag )
|
||||
sa[i].num = strtod(bucket->data, NULL);
|
||||
else
|
||||
sa[i].value = bucket->data;
|
||||
i++;
|
||||
bucket = bucket->next;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
array = array_cell(source);
|
||||
n = array_num_elements(array);
|
||||
sa = xmalloc(n * sizeof(sort_element));
|
||||
i = 0;
|
||||
|
||||
for (ae = element_forw(array->head); ae != array->head; ae = element_forw(ae)) {
|
||||
sa[i].v = ae;
|
||||
if (numeric_flag)
|
||||
sa[i].num = strtod(element_value(ae), NULL);
|
||||
else
|
||||
sa[i].value = element_value(ae);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
// sanity check
|
||||
if ( i != n ) {
|
||||
builtin_error("%s: corrupt array", source->name);
|
||||
return EXECUTION_FAILURE;
|
||||
}
|
||||
|
||||
qsort(sa, n, sizeof(sort_element), compare);
|
||||
|
||||
array_flush(dest_array);
|
||||
|
||||
for ( i = 0; i < n; ++i ) {
|
||||
if ( assoc_p(source) )
|
||||
key = sa[i].key;
|
||||
else
|
||||
key = fmtulong((long unsigned)sa[i].v->ind, 10, ibuf, sizeof(ibuf), 0);
|
||||
|
||||
array_insert(dest_array, i, key);
|
||||
}
|
||||
|
||||
return EXECUTION_SUCCESS;
|
||||
}
|
||||
|
||||
static int
|
||||
sort_inplace(SHELL_VAR *var) {
|
||||
size_t i, n;
|
||||
ARRAY *a;
|
||||
ARRAY_ELEMENT *ae;
|
||||
sort_element *sa = 0;
|
||||
|
||||
a = array_cell(var);
|
||||
n = array_num_elements(a);
|
||||
|
||||
if ( n == 0 )
|
||||
return EXECUTION_SUCCESS;
|
||||
|
||||
sa = xmalloc(n * sizeof(sort_element));
|
||||
|
||||
i = 0;
|
||||
for (ae = element_forw(a->head); ae != a->head; ae = element_forw(ae)) {
|
||||
sa[i].v = ae;
|
||||
if (numeric_flag)
|
||||
sa[i].num = strtod(element_value(ae), NULL);
|
||||
else
|
||||
sa[i].value = element_value(ae);
|
||||
i++;
|
||||
}
|
||||
|
||||
// sanity check
|
||||
if ( i != n ) {
|
||||
builtin_error("%s: corrupt array", var->name);
|
||||
return EXECUTION_FAILURE;
|
||||
}
|
||||
|
||||
qsort(sa, n, sizeof(sort_element), compare);
|
||||
|
||||
// for in-place sort, simply "rewire" the array elements
|
||||
sa[0].v->prev = sa[n-1].v->next = a->head;
|
||||
a->head->next = sa[0].v;
|
||||
a->head->prev = sa[n-1].v;
|
||||
a->max_index = n - 1;
|
||||
for (i = 0; i < n; i++) {
|
||||
sa[i].v->ind = i;
|
||||
if (i > 0)
|
||||
sa[i].v->prev = sa[i-1].v;
|
||||
if (i < n - 1)
|
||||
sa[i].v->next = sa[i+1].v;
|
||||
}
|
||||
xfree(sa);
|
||||
return EXECUTION_SUCCESS;
|
||||
}
|
||||
|
||||
int
|
||||
asort_builtin(WORD_LIST *list) {
|
||||
SHELL_VAR *var, *var2;
|
||||
char *word;
|
||||
int opt, ret;
|
||||
int index_flag = 0;
|
||||
|
||||
numeric_flag = 0;
|
||||
reverse_flag = 0;
|
||||
|
||||
reset_internal_getopt();
|
||||
while ((opt = internal_getopt(list, "inr")) != -1) {
|
||||
switch (opt) {
|
||||
case 'i': index_flag = 1; break;
|
||||
case 'n': numeric_flag = 1; break;
|
||||
case 'r': reverse_flag = 1; break;
|
||||
CASE_HELPOPT;
|
||||
default:
|
||||
builtin_usage();
|
||||
return (EX_USAGE);
|
||||
}
|
||||
}
|
||||
list = loptend;
|
||||
|
||||
if (list == 0) {
|
||||
builtin_usage();
|
||||
return EX_USAGE;
|
||||
}
|
||||
|
||||
if (legal_identifier (list->word->word) == 0) {
|
||||
sh_invalidid (list->word->word);
|
||||
return EXECUTION_FAILURE;
|
||||
}
|
||||
|
||||
if ( index_flag ) {
|
||||
if ( list->next == 0 || list->next->next ) {
|
||||
builtin_usage();
|
||||
return EX_USAGE;
|
||||
}
|
||||
if (legal_identifier (list->next->word->word) == 0) {
|
||||
sh_invalidid (list->next->word->word);
|
||||
return EXECUTION_FAILURE;
|
||||
}
|
||||
var = find_or_make_array_variable(list->word->word, 1);
|
||||
if (var == 0)
|
||||
return EXECUTION_FAILURE;
|
||||
var2 = find_variable(list->next->word->word);
|
||||
if ( !var2 || ( !array_p(var2) && !assoc_p(var2) ) ) {
|
||||
builtin_error("%s: Not an array", list->next->word->word);
|
||||
return EXECUTION_FAILURE;
|
||||
}
|
||||
return sort_index(var, var2);
|
||||
}
|
||||
|
||||
while (list) {
|
||||
word = list->word->word;
|
||||
var = find_variable(word);
|
||||
list = list->next;
|
||||
|
||||
if (var == 0 || array_p(var) == 0) {
|
||||
builtin_error("%s: Not an array", word);
|
||||
continue;
|
||||
}
|
||||
if (readonly_p(var) || noassign_p(var)) {
|
||||
if (readonly_p(var))
|
||||
err_readonly(word);
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( (ret = sort_inplace(var)) != EXECUTION_SUCCESS )
|
||||
return ret;
|
||||
}
|
||||
return EXECUTION_SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
char *asort_doc[] = {
|
||||
"Sort arrays in-place.",
|
||||
"",
|
||||
"Options:",
|
||||
" -n compare according to string numerical value",
|
||||
" -r reverse the result of comparisons",
|
||||
" -i sort using indices/keys",
|
||||
"",
|
||||
"If -i is supplied, SOURCE is not sorted in-place, but the indices (or keys",
|
||||
"if associative) of SOURCE, after sorting it by its values, are placed as",
|
||||
"values in the indexed array DEST",
|
||||
"",
|
||||
"Associative arrays may not be sorted in-place.",
|
||||
"",
|
||||
"Exit status:",
|
||||
"Return value is zero unless an error happened (like invalid variable name",
|
||||
"or readonly array).",
|
||||
(char *)NULL
|
||||
};
|
||||
|
||||
struct builtin asort_struct = {
|
||||
"asort",
|
||||
asort_builtin,
|
||||
BUILTIN_ENABLED,
|
||||
asort_doc,
|
||||
"asort [-nr] array ... or asort [-nr] -i dest source",
|
||||
0
|
||||
};
|
||||
+4
-3
@@ -4636,7 +4636,7 @@ run_builtin:
|
||||
if (result == EX_USAGE)
|
||||
result = EX_BADUSAGE;
|
||||
else if (result > EX_SHERRBASE)
|
||||
result = EXECUTION_FAILURE;
|
||||
result = builtin_status (result);
|
||||
}
|
||||
|
||||
set_pipestatus_from_exit (result);
|
||||
@@ -4694,16 +4694,17 @@ builtin_status (result)
|
||||
switch (result)
|
||||
{
|
||||
case EX_USAGE:
|
||||
case EX_BADSYNTAX:
|
||||
r = EX_BADUSAGE;
|
||||
break;
|
||||
case EX_REDIRFAIL:
|
||||
case EX_BADSYNTAX:
|
||||
case EX_BADASSIGN:
|
||||
case EX_EXPFAIL:
|
||||
r = EXECUTION_FAILURE;
|
||||
break;
|
||||
default:
|
||||
r = EXECUTION_SUCCESS;
|
||||
/* other special exit statuses not yet defined */
|
||||
r = (result > EX_SHERRBASE) ? EXECUTION_FAILURE : EXECUTION_SUCCESS;
|
||||
break;
|
||||
}
|
||||
return (r);
|
||||
|
||||
@@ -3271,6 +3271,9 @@ _rl_update_final (void)
|
||||
{
|
||||
int full_lines, woff, botline_length;
|
||||
|
||||
if (line_structures_initialized == 0)
|
||||
return;
|
||||
|
||||
full_lines = 0;
|
||||
/* If the cursor is the only thing on an otherwise-blank last line,
|
||||
compensate so we don't print an extra CRLF. */
|
||||
|
||||
@@ -6316,7 +6316,7 @@ report_syntax_error (message)
|
||||
parser_error (line_number, "%s", message);
|
||||
if (interactive && EOF_Reached)
|
||||
EOF_Reached = 0;
|
||||
last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
last_command_exit_value = (executing_builtin && parse_and_execute_level) ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
set_pipestatus_from_exit (last_command_exit_value);
|
||||
return;
|
||||
}
|
||||
@@ -6338,7 +6338,7 @@ report_syntax_error (message)
|
||||
if (interactive == 0)
|
||||
print_offending_line ();
|
||||
|
||||
last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
last_command_exit_value = (executing_builtin && parse_and_execute_level) ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
set_pipestatus_from_exit (last_command_exit_value);
|
||||
return;
|
||||
}
|
||||
@@ -6370,7 +6370,7 @@ report_syntax_error (message)
|
||||
EOF_Reached = 0;
|
||||
}
|
||||
|
||||
last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
last_command_exit_value = (executing_builtin && parse_and_execute_level) ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
set_pipestatus_from_exit (last_command_exit_value);
|
||||
}
|
||||
|
||||
|
||||
@@ -5939,6 +5939,9 @@ process_substitute (string, open_for_read_in_child)
|
||||
pid = make_child ((char *)NULL, FORK_ASYNC);
|
||||
if (pid == 0)
|
||||
{
|
||||
int old_interactive;
|
||||
|
||||
old_interactive = interactive;
|
||||
/* The currently-executing shell is not interactive */
|
||||
interactive = 0;
|
||||
|
||||
@@ -5948,7 +5951,7 @@ process_substitute (string, open_for_read_in_child)
|
||||
restore_original_signals (); /* XXX - what about special builtins? bash-4.2 */
|
||||
QUIT; /* catch any interrupts we got post-fork */
|
||||
setup_async_signals ();
|
||||
if (open_for_read_in_child == 0)
|
||||
if (open_for_read_in_child == 0 && old_interactive && (bash_input.type == st_stdin || bash_input.type == st_stream))
|
||||
async_redirect_stdin ();
|
||||
subshell_environment |= SUBSHELL_COMSUB|SUBSHELL_PROCSUB|SUBSHELL_ASYNC;
|
||||
|
||||
@@ -10383,7 +10386,12 @@ add_string:
|
||||
|
||||
c = string[++sindex];
|
||||
|
||||
if (quoted & Q_HERE_DOCUMENT)
|
||||
/* "However, the double-quote character ( '"' ) shall not be treated
|
||||
specially within a here-document, except when the double-quote
|
||||
appears within "$()", "``", or "${}"." */
|
||||
if ((quoted & Q_HERE_DOCUMENT) && (quoted & Q_DOLBRACE) && c == '"')
|
||||
tflag = CBSDQUOTE; /* special case */
|
||||
else if (quoted & Q_HERE_DOCUMENT)
|
||||
tflag = CBSHDOC;
|
||||
else if (quoted & Q_DOUBLE_QUOTES)
|
||||
tflag = CBSDQUOTE;
|
||||
|
||||
+46
-1
@@ -1,6 +1,6 @@
|
||||
/* signames.c -- Create an array of signal names. */
|
||||
|
||||
/* Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2006-2020 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
|
||||
@@ -159,10 +159,18 @@ initialize_signames ()
|
||||
signal_names[SIGPRE] = "SIGPRE";
|
||||
#endif
|
||||
|
||||
#if defined (SIGPHONE) /* Phone interrupt */
|
||||
signal_names[SIGPHONE] = "SIGPHONE";
|
||||
#endif
|
||||
|
||||
#if defined (SIGVIRT) /* AIX virtual time alarm */
|
||||
signal_names[SIGVIRT] = "SIGVIRT";
|
||||
#endif
|
||||
|
||||
#if defined (SIGTINT) /* Interrupt */
|
||||
signal_names[SIGTINT] = "SIGTINT";
|
||||
#endif
|
||||
|
||||
#if defined (SIGALRM1) /* m:n condition variables */
|
||||
signal_names[SIGALRM1] = "SIGALRM1";
|
||||
#endif
|
||||
@@ -191,6 +199,18 @@ initialize_signames ()
|
||||
signal_names[SIGSAK] = "SIGSAK";
|
||||
#endif
|
||||
|
||||
#if defined (SIGCPUFAIL) /* Predictive processor deconfiguration */
|
||||
signal_names[SIGCPUFAIL] = "SIGCPUFAIL";
|
||||
#endif
|
||||
|
||||
#if defined (SIGAIO) /* Asynchronous I/O */
|
||||
signal_names[SIGAIO] = "SIGAIO";
|
||||
#endif
|
||||
|
||||
#if defined (SIGLAB) /* Security label changed */
|
||||
signal_names[SIGLAB] = "SIGLAB";
|
||||
#endif
|
||||
|
||||
/* SunOS5 */
|
||||
#if defined (SIGLWP) /* Solaris: special signal used by thread library */
|
||||
signal_names[SIGLWP] = "SIGLWP";
|
||||
@@ -220,6 +240,31 @@ initialize_signames ()
|
||||
signal_names[SIGJVM2] = "SIGJVM2";
|
||||
#endif
|
||||
|
||||
#if defined (SIGDGTIMER1)
|
||||
signal_names[SIGDGTIMER1] = "SIGDGTIMER1";
|
||||
#endif
|
||||
|
||||
#if defined (SIGDGTIMER2)
|
||||
signal_names[SIGDGTIMER2] = "SIGDGTIMER2";
|
||||
#endif
|
||||
|
||||
#if defined (SIGDGTIMER3)
|
||||
signal_names[SIGDGTIMER3] = "SIGDGTIMER3";
|
||||
#endif
|
||||
|
||||
#if defined (SIGDGTIMER4)
|
||||
signal_names[SIGDGTIMER4] = "SIGDGTIMER4";
|
||||
#endif
|
||||
|
||||
#if defined (SIGDGNOTIFY)
|
||||
signal_names[SIGDGNOTIFY] = "SIGDGNOTIFY";
|
||||
#endif
|
||||
|
||||
/* Apollo */
|
||||
#if defined (SIGAPOLLO)
|
||||
signal_names[SIGAPOLLO] = "SIGAPOLLO";
|
||||
#endif
|
||||
|
||||
/* HP-UX */
|
||||
#if defined (SIGDIL) /* DIL signal (?) */
|
||||
signal_names[SIGDIL] = "SIGDIL";
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
/* Defines for use by mksyntax.c */
|
||||
|
||||
#define slashify_in_quotes "\\`$\"\n"
|
||||
#define slashify_in_here_document "\\`$\""
|
||||
#define slashify_in_here_document "\\`$"
|
||||
|
||||
#define shell_meta_chars "()<>;&|"
|
||||
#define shell_break_chars "()<>;&| \t\n"
|
||||
|
||||
+10
-1
@@ -1592,8 +1592,17 @@ get_histcmd (var)
|
||||
SHELL_VAR *var;
|
||||
{
|
||||
char *p;
|
||||
int n;
|
||||
|
||||
p = itos (history_number ());
|
||||
/* Do the same adjustment here we do in parse.y:prompt_history_number,
|
||||
assuming that we are in one of two states: decoding this as part of
|
||||
the prompt string, in which case we do not want to assume that the
|
||||
command has been saved to the history and the history number incremented,
|
||||
or the expansion is part of the current command being executed and has
|
||||
already been saved to history and the history number incremented.
|
||||
Right now we use EXECUTING as the determinant. */
|
||||
n = history_number () - executing;
|
||||
p = itos (n);
|
||||
FREE (value_cell (var));
|
||||
var_setvalue (var, p);
|
||||
return (var);
|
||||
|
||||
@@ -8610,7 +8610,7 @@ report_syntax_error (message)
|
||||
parser_error (line_number, "%s", message);
|
||||
if (interactive && EOF_Reached)
|
||||
EOF_Reached = 0;
|
||||
last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
last_command_exit_value = (executing_builtin && parse_and_execute_level) ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
set_pipestatus_from_exit (last_command_exit_value);
|
||||
return;
|
||||
}
|
||||
@@ -8632,7 +8632,7 @@ report_syntax_error (message)
|
||||
if (interactive == 0)
|
||||
print_offending_line ();
|
||||
|
||||
last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
last_command_exit_value = (executing_builtin && parse_and_execute_level) ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
set_pipestatus_from_exit (last_command_exit_value);
|
||||
return;
|
||||
}
|
||||
@@ -8664,7 +8664,7 @@ report_syntax_error (message)
|
||||
EOF_Reached = 0;
|
||||
}
|
||||
|
||||
last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
last_command_exit_value = (executing_builtin && parse_and_execute_level) ? EX_BADSYNTAX : EX_BADUSAGE;
|
||||
set_pipestatus_from_exit (last_command_exit_value);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user