commit bash-20200131 snapshot

This commit is contained in:
Chet Ramey
2020-02-04 10:14:42 -05:00
parent 11bb038e13
commit 10db656551
26 changed files with 10555 additions and 10178 deletions
+27
View File
@@ -7234,3 +7234,30 @@ lib/readline/bind.c
- rl_invoking_keyseqs_in_map: make sure to consistently output
backslash as `\\' instead of producing `\C-\'
Fixes from Koichi Murase <myoga.murase@gmail.com>
1/29
----
bashline.c
- readline_get_char_offset: translate a readline buffer offset
(rl_point, rl_mark, rl_end) into a number of (possibly multibyte)
characters
- readline_set_char_offset: translate a number of (possibly multibyte)
characters into a buffer offset in rl_line_buffer. Uses a private
readline function to do it, which is bad
- bash_execute_unix_command: use readline_{get,set}_char_offset to
translate the rl_point to a character offset
- bash_execute_unix_command: bind READLINE_MARK variable, exposing
the value of rl_mark to `bind -x' functions
1/31
----
examples/loadables/accept.c
- accept: new loadable builtin that will accept a TCP connection on a
specified port. Inspired by Stan Marsh <gazelle@xmission.com>
2/1
---
lib/readline/histfile.c
- history_do_write,history_truncate_file: translate the return value rv
to errno when histfile_restore returns -1 (e.g., if rename() fails).
Report and fix from A <auroralanes@protonmail.ch>
+1
View File
@@ -710,6 +710,7 @@ examples/loadables/Makefile.in f
examples/loadables/Makefile.inc.in f
examples/loadables/necho.c f
examples/loadables/hello.c f
examples/loadables/accept.c f
examples/loadables/print.c f
examples/loadables/realpath.c f
examples/loadables/seq.c f
+59 -31
View File
@@ -197,6 +197,8 @@ static void putx PARAMS((int));
#else
static int putx PARAMS((int));
#endif
static int readline_get_char_offset PARAMS((int));
static void readline_set_char_offset PARAMS((int, int *));
static Keymap get_cmd_xmap_from_edit_mode PARAMS((void));
static Keymap get_cmd_xmap_from_keymap PARAMS((Keymap));
@@ -4286,7 +4288,49 @@ putx(c)
return x;
#endif
}
static int
readline_get_char_offset (ind)
int ind;
{
int r, old_ch;
r = ind;
#if defined (HANDLE_MULTIBYTE)
if (locale_mb_cur_max > 1)
{
old_ch = rl_line_buffer[ind];
rl_line_buffer[ind] = '\0';
r = MB_STRLEN (rl_line_buffer);
rl_line_buffer[ind] = old_ch;
}
#endif
return r;
}
static void
readline_set_char_offset (ind, varp)
int ind;
int *varp;
{
int i;
i = ind;
#if defined (HANDLE_MULTIBYTE)
if (i > 0 && locale_mb_cur_max > 1)
i = _rl_find_next_mbchar (rl_line_buffer, 0, i, 0); /* XXX */
#endif
if (i != *varp)
{
if (i > rl_end)
i = rl_end;
else if (i < 0)
i = 0;
*varp = i;
}
}
int
bash_execute_unix_command (count, key)
int count; /* ignored */
@@ -4321,12 +4365,7 @@ bash_execute_unix_command (count, key)
ce = rl_get_termcap ("ce");
if (ce) /* clear current line */
{
#if 0
fprintf (rl_outstream, "\r");
tputs (ce, 1, putx);
#else
rl_clear_visible_line ();
#endif
fflush (rl_outstream);
}
else
@@ -4335,18 +4374,16 @@ bash_execute_unix_command (count, key)
v = bind_variable ("READLINE_LINE", rl_line_buffer, 0);
if (v)
VSETATTR (v, att_exported);
i = rl_point;
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1)
{
old_ch = rl_line_buffer[rl_point];
rl_line_buffer[rl_point] = '\0';
i = MB_STRLEN (rl_line_buffer);
rl_line_buffer[rl_point] = old_ch;
}
#endif
i = readline_get_char_offset (rl_point);
value = inttostr (i, ibuf, sizeof (ibuf));
v = bind_int_variable ("READLINE_POINT", value, 0);
if (v)
VSETATTR (v, att_exported);
i = readline_get_char_offset (rl_mark);
value = inttostr (i, ibuf, sizeof (ibuf));
v = bind_int_variable ("READLINE_MARK", value, 0);
if (v)
VSETATTR (v, att_exported);
array_needs_making = 1;
@@ -4360,24 +4397,15 @@ bash_execute_unix_command (count, key)
v = find_variable ("READLINE_POINT");
if (v && legal_number (value_cell (v), &mi))
{
i = mi;
#if defined (HANDLE_MULTIBYTE)
if (i > 0 && MB_CUR_MAX > 1)
i = _rl_find_next_mbchar (rl_line_buffer, 0, i, 0);
#endif
if (i != rl_point)
{
rl_point = i;
if (rl_point > rl_end)
rl_point = rl_end;
else if (rl_point < 0)
rl_point = 0;
}
}
readline_set_char_offset (mi, &rl_point);
v = find_variable ("READLINE_MARK");
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");
array_needs_making = 1;
/* and restore the readline buffer and display after command execution. */
+1434 -1428
View File
File diff suppressed because it is too large Load Diff
+27 -8
View File
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Tue Nov 26 11:15:17 EST 2019
.\" Last Change: Wed Jan 29 14:00:16 EST 2020
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2019 November 26" "GNU Bash 5.0"
.TH BASH 1 "2020 January 29" "GNU Bash 5.0"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -50,8 +50,8 @@ bash \- GNU Bourne-Again SHell
[options]
[command_string | file]
.SH COPYRIGHT
.if n Bash is Copyright (C) 1989-2019 by the Free Software Foundation, Inc.
.if t Bash is Copyright \(co 1989-2019 by the Free Software Foundation, Inc.
.if n Bash is Copyright (C) 1989-2020 by the Free Software Foundation, Inc.
.if t Bash is Copyright \(co 1989-2020 by the Free Software Foundation, Inc.
.SH DESCRIPTION
.B Bash
is an \fBsh\fR-compatible command language interpreter that
@@ -1938,6 +1938,19 @@ line buffer, for use with
.B "SHELL BUILTIN COMMANDS"
below).
.TP
.B READLINE_MARK
The position of the mark (saved insertion point) in the
.B readline
line buffer, for use with
.if t \f(CWbind -x\fP
.if n "bind -x"
(see
.SM
.B "SHELL BUILTIN COMMANDS"
below).
The characters between the insertion point and the mark are often
called the \fIregion\fP.
.TP
.B READLINE_POINT
The position of the insertion point in the
.B readline
@@ -7548,13 +7561,19 @@ When \fIshell\-command\fP is executed, the shell sets the
variable to the contents of the \fBreadline\fP line buffer and the
.SM
.B READLINE_POINT
variable to the current location of the insertion point.
If the executed command changes the value of
and
.SM
.B READLINE_LINE
or
.B READLINE_MARK
variables to the current location of the insertion point and the saved
insertion point (the mark), respectively.
If the executed command changes the value of any of
.SM
.BR READLINE_LINE ,
.SM
.BR READLINE_POINT ,
or
.SM
.BR READLINE_MARK ,
those new values will be reflected in the editing state.
.TP
.B \-X
+32 -8
View File
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2019 November 26<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2020 January 29<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -54,7 +54,7 @@ bash - GNU Bourne-Again SHell
<H3>COPYRIGHT</H3>
Bash is Copyright &#169; 1989-2019 by the Free Software Foundation, Inc.
Bash is Copyright &#169; 1989-2020 by the Free Software Foundation, Inc.
<A NAME="lbAE">&nbsp;</A>
<H3>DESCRIPTION</H3>
@@ -2472,6 +2472,22 @@ line buffer, for use with
</FONT>
below).
<DT><B>READLINE_MARK</B>
<DD>
The position of the mark (saved insertion point) in the
<B>readline</B>
line buffer, for use with
<TT>bind -x</TT>
(see
<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
</FONT>
below).
The characters between the insertion point and the mark are often
called the <I>region</I>.
<DT><B>READLINE_POINT</B>
<DD>
@@ -9635,13 +9651,21 @@ variable to the contents of the <B>readline</B> line buffer and the
<FONT SIZE=-1><B>READLINE_POINT</B>
</FONT>
variable to the current location of the insertion point.
If the executed command changes the value of
<FONT SIZE=-1><B>READLINE_LINE</B>
and
<FONT SIZE=-1><B>READLINE_MARK</B>
</FONT>
variables to the current location of the insertion point and the saved
insertion point (the mark), respectively.
If the executed command changes the value of any of
<FONT SIZE=-1><B>READLINE_LINE</B>,
</FONT>
<FONT SIZE=-1><B>READLINE_POINT</B>,
</FONT>
or
<FONT SIZE=-1><B>READLINE_POINT</B>,
<FONT SIZE=-1><B>READLINE_MARK</B>,
</FONT>
those new values will be reflected in the editing state.
@@ -14044,7 +14068,7 @@ There may be only one active coprocess at a time.
<HR>
<TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>GNU Bash 5.0<TH ALIGN=CENTER width=33%>2019 November 26<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>GNU Bash 5.0<TH ALIGN=CENTER width=33%>2020 January 29<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -14150,6 +14174,6 @@ There may be only one active coprocess at a time.
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
Time: 06 January 2020 08:53:48 EST
Time: 29 January 2020 14:04:26 EST
</BODY>
</HTML>
+176 -167
View File
@@ -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.0, 26 November 2019).
Bash shell (version 5.0, 29 January 2020).
This is Edition 5.0, last updated 26 November 2019, of 'The GNU Bash
This is Edition 5.0, last updated 29 January 2020, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.0.
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.0, 26 November 2019). The Bash home page is
Bash shell (version 5.0, 29 January 2020). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.0, last updated 26 November 2019, of 'The GNU Bash
This is Edition 5.0, last updated 29 January 2020, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.0.
Bash contains features that appear in other popular shells, and some
@@ -3427,10 +3427,12 @@ standard.
Cause SHELL-COMMAND to be executed whenever KEYSEQ is entered.
When SHELL-COMMAND is executed, the shell sets the
'READLINE_LINE' variable to the contents of the Readline line
buffer and the 'READLINE_POINT' variable to the current
location of the insertion point. If the executed command
changes the value of 'READLINE_LINE' or 'READLINE_POINT',
those new values will be reflected in the editing state.
buffer and the 'READLINE_POINT' and 'READLINE_MARK' variables
to the current location of the insertion point and the saved
insertion point (the MARK), respectively. If the executed
command changes the value of any of 'READLINE_LINE',
'READLINE_POINT', or 'READLINE_MARK', those new values will be
reflected in the editing state.
'-X'
List all key sequences bound to shell commands and the
@@ -5448,6 +5450,12 @@ Variables::).
The contents of the Readline line buffer, for use with 'bind -x'
(*note Bash Builtins::).
'READLINE_MARK'
The position of the MARK (saved insertion point) in the Readline
line buffer, for use with 'bind -x' (*note Bash Builtins::). The
characters between the insertion point and the mark are often
called the REGION.
'READLINE_POINT'
The position of the insertion point in the Readline line buffer,
for use with 'bind -x' (*note Bash Builtins::).
@@ -11052,11 +11060,11 @@ D.1 Index of Shell Builtin Commands
* bind: Bash Builtins. (line 21)
* break: Bourne Shell Builtins.
(line 36)
* builtin: Bash Builtins. (line 102)
* caller: Bash Builtins. (line 111)
* builtin: Bash Builtins. (line 104)
* caller: Bash Builtins. (line 113)
* cd: Bourne Shell Builtins.
(line 44)
* command: Bash Builtins. (line 128)
* command: Bash Builtins. (line 130)
* compgen: Programmable Completion Builtins.
(line 12)
* complete: Programmable Completion Builtins.
@@ -11065,13 +11073,13 @@ D.1 Index of Shell Builtin Commands
(line 237)
* continue: Bourne Shell Builtins.
(line 85)
* declare: Bash Builtins. (line 148)
* declare: Bash Builtins. (line 150)
* dirs: Directory Stack Builtins.
(line 7)
* disown: Job Control Builtins.
(line 97)
* echo: Bash Builtins. (line 246)
* enable: Bash Builtins. (line 295)
* echo: Bash Builtins. (line 248)
* enable: Bash Builtins. (line 297)
* eval: Bourne Shell Builtins.
(line 94)
* exec: Bourne Shell Builtins.
@@ -11088,26 +11096,26 @@ D.1 Index of Shell Builtin Commands
(line 143)
* hash: Bourne Shell Builtins.
(line 187)
* help: Bash Builtins. (line 324)
* help: Bash Builtins. (line 326)
* history: Bash History Builtins.
(line 40)
* jobs: Job Control Builtins.
(line 27)
* kill: Job Control Builtins.
(line 58)
* let: Bash Builtins. (line 343)
* local: Bash Builtins. (line 351)
* logout: Bash Builtins. (line 365)
* mapfile: Bash Builtins. (line 370)
* let: Bash Builtins. (line 345)
* local: Bash Builtins. (line 353)
* logout: Bash Builtins. (line 367)
* mapfile: Bash Builtins. (line 372)
* popd: Directory Stack Builtins.
(line 35)
* printf: Bash Builtins. (line 416)
* printf: Bash Builtins. (line 418)
* pushd: Directory Stack Builtins.
(line 53)
* pwd: Bourne Shell Builtins.
(line 207)
* read: Bash Builtins. (line 460)
* readarray: Bash Builtins. (line 554)
* read: Bash Builtins. (line 462)
* readarray: Bash Builtins. (line 556)
* readonly: Bourne Shell Builtins.
(line 217)
* return: Bourne Shell Builtins.
@@ -11116,7 +11124,7 @@ D.1 Index of Shell Builtin Commands
* shift: Bourne Shell Builtins.
(line 257)
* shopt: The Shopt Builtin. (line 9)
* source: Bash Builtins. (line 563)
* source: Bash Builtins. (line 565)
* suspend: Job Control Builtins.
(line 109)
* test: Bourne Shell Builtins.
@@ -11125,12 +11133,12 @@ D.1 Index of Shell Builtin Commands
(line 349)
* trap: Bourne Shell Builtins.
(line 355)
* type: Bash Builtins. (line 568)
* typeset: Bash Builtins. (line 600)
* ulimit: Bash Builtins. (line 606)
* type: Bash Builtins. (line 570)
* typeset: Bash Builtins. (line 602)
* ulimit: Bash Builtins. (line 608)
* umask: Bourne Shell Builtins.
(line 404)
* unalias: Bash Builtins. (line 705)
* unalias: Bash Builtins. (line 707)
* unset: Bourne Shell Builtins.
(line 422)
* wait: Job Control Builtins.
@@ -11376,14 +11384,15 @@ D.3 Parameter and Variable Index
* PWD: Bash Variables. (line 598)
* RANDOM: Bash Variables. (line 601)
* READLINE_LINE: Bash Variables. (line 607)
* READLINE_POINT: Bash Variables. (line 611)
* REPLY: Bash Variables. (line 615)
* READLINE_MARK: Bash Variables. (line 611)
* READLINE_POINT: Bash Variables. (line 617)
* REPLY: Bash Variables. (line 621)
* revert-all-at-newline: Readline Init File Syntax.
(line 272)
* SECONDS: Bash Variables. (line 618)
* SHELL: Bash Variables. (line 625)
* SHELLOPTS: Bash Variables. (line 630)
* SHLVL: Bash Variables. (line 639)
* SECONDS: Bash Variables. (line 624)
* SHELL: Bash Variables. (line 631)
* SHELLOPTS: Bash Variables. (line 636)
* SHLVL: Bash Variables. (line 645)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 278)
* show-all-if-unmodified: Readline Init File Syntax.
@@ -11392,13 +11401,13 @@ D.3 Parameter and Variable Index
(line 293)
* skip-completed-text: Readline Init File Syntax.
(line 299)
* SRANDOM: Bash Variables. (line 644)
* SRANDOM: Bash Variables. (line 650)
* TEXTDOMAIN: Locale Translation. (line 11)
* TEXTDOMAINDIR: Locale Translation. (line 11)
* TIMEFORMAT: Bash Variables. (line 653)
* TMOUT: Bash Variables. (line 691)
* TMPDIR: Bash Variables. (line 703)
* UID: Bash Variables. (line 707)
* TIMEFORMAT: Bash Variables. (line 659)
* TMOUT: Bash Variables. (line 697)
* TMPDIR: Bash Variables. (line 709)
* UID: Bash Variables. (line 713)
* vi-cmd-mode-string: Readline Init File Syntax.
(line 312)
* vi-ins-mode-string: Readline Init File Syntax.
@@ -11769,135 +11778,135 @@ D.5 Concept Index

Tag Table:
Node: Top897
Node: Introduction2817
Node: What is Bash?3033
Node: What is a shell?4147
Node: Definitions6685
Node: Basic Shell Features9636
Node: Shell Syntax10855
Node: Shell Operation11881
Node: Quoting13174
Node: Escape Character14474
Node: Single Quotes14959
Node: Double Quotes15307
Node: ANSI-C Quoting16585
Node: Locale Translation17844
Node: Comments18740
Node: Shell Commands19358
Node: Simple Commands20230
Node: Pipelines20861
Node: Lists23793
Node: Compound Commands25584
Node: Looping Constructs26596
Node: Conditional Constructs29091
Node: Command Grouping40662
Node: Coprocesses42141
Node: GNU Parallel44044
Node: Shell Functions48345
Node: Shell Parameters55552
Node: Positional Parameters59965
Node: Special Parameters60865
Node: Shell Expansions64089
Node: Brace Expansion66212
Node: Tilde Expansion68935
Node: Shell Parameter Expansion71552
Node: Command Substitution85985
Node: Arithmetic Expansion87340
Node: Process Substitution88272
Node: Word Splitting89392
Node: Filename Expansion91336
Node: Pattern Matching93885
Node: Quote Removal97871
Node: Redirections98166
Node: Executing Commands107724
Node: Simple Command Expansion108394
Node: Command Search and Execution110348
Node: Command Execution Environment112724
Node: Environment115708
Node: Exit Status117367
Node: Signals119037
Node: Shell Scripts121004
Node: Shell Builtin Commands124016
Node: Bourne Shell Builtins126054
Node: Bash Builtins146978
Node: Modifying Shell Behavior175903
Node: The Set Builtin176248
Node: The Shopt Builtin186661
Node: Special Builtins204331
Node: Shell Variables205310
Node: Bourne Shell Variables205747
Node: Bash Variables207851
Node: Bash Features239793
Node: Invoking Bash240692
Node: Bash Startup Files246705
Node: Interactive Shells251808
Node: What is an Interactive Shell?252218
Node: Is this Shell Interactive?252867
Node: Interactive Shell Behavior253682
Node: Bash Conditional Expressions257169
Node: Shell Arithmetic261746
Node: Aliases264686
Node: Arrays267306
Node: The Directory Stack272671
Node: Directory Stack Builtins273455
Node: Controlling the Prompt276423
Node: The Restricted Shell279344
Node: Bash POSIX Mode281826
Node: Job Control292713
Node: Job Control Basics293173
Node: Job Control Builtins298137
Node: Job Control Variables303283
Node: Command Line Editing304439
Node: Introduction and Notation306110
Node: Readline Interaction307733
Node: Readline Bare Essentials308924
Node: Readline Movement Commands310707
Node: Readline Killing Commands311667
Node: Readline Arguments313585
Node: Searching314629
Node: Readline Init File316815
Node: Readline Init File Syntax318074
Node: Conditional Init Constructs338604
Node: Sample Init File342800
Node: Bindable Readline Commands345917
Node: Commands For Moving347121
Node: Commands For History348980
Node: Commands For Text353275
Node: Commands For Killing356663
Node: Numeric Arguments359478
Node: Commands For Completion360617
Node: Keyboard Macros364808
Node: Miscellaneous Commands365495
Node: Readline vi Mode371448
Node: Programmable Completion372355
Node: Programmable Completion Builtins380135
Node: A Programmable Completion Example390830
Node: Using History Interactively396077
Node: Bash History Facilities396761
Node: Bash History Builtins399766
Node: History Interaction404298
Node: Event Designators407918
Node: Word Designators409272
Node: Modifiers411032
Node: Installing Bash412843
Node: Basic Installation413980
Node: Compilers and Options417238
Node: Compiling For Multiple Architectures417979
Node: Installation Names419672
Node: Specifying the System Type420490
Node: Sharing Defaults421206
Node: Operation Controls421879
Node: Optional Features422837
Node: Reporting Bugs433355
Node: Major Differences From The Bourne Shell434549
Node: GNU Free Documentation License451401
Node: Indexes476578
Node: Builtin Index477032
Node: Reserved Word Index483859
Node: Variable Index486307
Node: Function Index502131
Node: Concept Index515570
Node: Top895
Node: Introduction2813
Node: What is Bash?3029
Node: What is a shell?4143
Node: Definitions6681
Node: Basic Shell Features9632
Node: Shell Syntax10851
Node: Shell Operation11877
Node: Quoting13170
Node: Escape Character14470
Node: Single Quotes14955
Node: Double Quotes15303
Node: ANSI-C Quoting16581
Node: Locale Translation17840
Node: Comments18736
Node: Shell Commands19354
Node: Simple Commands20226
Node: Pipelines20857
Node: Lists23789
Node: Compound Commands25580
Node: Looping Constructs26592
Node: Conditional Constructs29087
Node: Command Grouping40658
Node: Coprocesses42137
Node: GNU Parallel44040
Node: Shell Functions48341
Node: Shell Parameters55548
Node: Positional Parameters59961
Node: Special Parameters60861
Node: Shell Expansions64085
Node: Brace Expansion66208
Node: Tilde Expansion68931
Node: Shell Parameter Expansion71548
Node: Command Substitution85981
Node: Arithmetic Expansion87336
Node: Process Substitution88268
Node: Word Splitting89388
Node: Filename Expansion91332
Node: Pattern Matching93881
Node: Quote Removal97867
Node: Redirections98162
Node: Executing Commands107720
Node: Simple Command Expansion108390
Node: Command Search and Execution110344
Node: Command Execution Environment112720
Node: Environment115704
Node: Exit Status117363
Node: Signals119033
Node: Shell Scripts121000
Node: Shell Builtin Commands124012
Node: Bourne Shell Builtins126050
Node: Bash Builtins146974
Node: Modifying Shell Behavior176020
Node: The Set Builtin176365
Node: The Shopt Builtin186778
Node: Special Builtins204448
Node: Shell Variables205427
Node: Bourne Shell Variables205864
Node: Bash Variables207968
Node: Bash Features240159
Node: Invoking Bash241058
Node: Bash Startup Files247071
Node: Interactive Shells252174
Node: What is an Interactive Shell?252584
Node: Is this Shell Interactive?253233
Node: Interactive Shell Behavior254048
Node: Bash Conditional Expressions257535
Node: Shell Arithmetic262112
Node: Aliases265052
Node: Arrays267672
Node: The Directory Stack273037
Node: Directory Stack Builtins273821
Node: Controlling the Prompt276789
Node: The Restricted Shell279710
Node: Bash POSIX Mode282192
Node: Job Control293079
Node: Job Control Basics293539
Node: Job Control Builtins298503
Node: Job Control Variables303649
Node: Command Line Editing304805
Node: Introduction and Notation306476
Node: Readline Interaction308099
Node: Readline Bare Essentials309290
Node: Readline Movement Commands311073
Node: Readline Killing Commands312033
Node: Readline Arguments313951
Node: Searching314995
Node: Readline Init File317181
Node: Readline Init File Syntax318440
Node: Conditional Init Constructs338970
Node: Sample Init File343166
Node: Bindable Readline Commands346283
Node: Commands For Moving347487
Node: Commands For History349346
Node: Commands For Text353641
Node: Commands For Killing357029
Node: Numeric Arguments359844
Node: Commands For Completion360983
Node: Keyboard Macros365174
Node: Miscellaneous Commands365861
Node: Readline vi Mode371814
Node: Programmable Completion372721
Node: Programmable Completion Builtins380501
Node: A Programmable Completion Example391196
Node: Using History Interactively396443
Node: Bash History Facilities397127
Node: Bash History Builtins400132
Node: History Interaction404664
Node: Event Designators408284
Node: Word Designators409638
Node: Modifiers411398
Node: Installing Bash413209
Node: Basic Installation414346
Node: Compilers and Options417604
Node: Compiling For Multiple Architectures418345
Node: Installation Names420038
Node: Specifying the System Type420856
Node: Sharing Defaults421572
Node: Operation Controls422245
Node: Optional Features423203
Node: Reporting Bugs433721
Node: Major Differences From The Bourne Shell434915
Node: GNU Free Documentation License451767
Node: Indexes476944
Node: Builtin Index477398
Node: Reserved Word Index484225
Node: Variable Index486673
Node: Function Index502570
Node: Concept Index516009

End Tag Table
BIN
View File
Binary file not shown.
+5278 -5296
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+21 -9
View File
@@ -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.0, 26 November 2019).
the Bash shell (version 5.0, 29 January 2020).
This is Edition 5.0, last updated 26 November 2019,
This is Edition 5.0, last updated 29 January 2020,
of The GNU Bash Reference Manual,
for Bash, Version 5.0.
@@ -273,10 +273,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.0, 26 November 2019).
the Bash shell (version 5.0, 29 January 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.0, last updated 26 November 2019,
<p>This is Edition 5.0, last updated 29 January 2020,
of <cite>The GNU Bash Reference Manual</cite>,
for <code>Bash</code>, Version 5.0.
</p>
@@ -4619,11 +4619,12 @@ initialization file.
entered.
When <var>shell-command</var> is executed, the shell sets the
<code>READLINE_LINE</code> variable to the contents of the Readline line
buffer and the <code>READLINE_POINT</code> variable to the current location
of the insertion point.
If the executed command changes the value of <code>READLINE_LINE</code> or
<code>READLINE_POINT</code>, those new values will be reflected in the
editing state.
buffer and the <code>READLINE_POINT</code> and <code>READLINE_MARK</code> variables
to the current location of the insertion point and the saved insertion
point (the <var>mark</var>), respectively.
If the executed command changes the value of any of <code>READLINE_LINE</code>,
<code>READLINE_POINT</code>, or <code>READLINE_MARK</code>, those new values will be
reflected in the editing state.
</p>
</dd>
<dt><code>-X</code></dt>
@@ -7368,6 +7369,16 @@ subsequently reset.
with &lsquo;<samp>bind -x</samp>&rsquo; (see <a href="#Bash-Builtins">Bash Builtins</a>).
</p>
</dd>
<dt><code>READLINE_MARK</code>
<span id="index-READLINE_005fMARK"></span>
</dt>
<dd><p>The position of the <var>mark</var> (saved insertion point) in the
Readline line buffer, for use
with &lsquo;<samp>bind -x</samp>&rsquo; (see <a href="#Bash-Builtins">Bash Builtins</a>).
The characters between the insertion point and the mark are often
called the <var>region</var>.
</p>
</dd>
<dt><code>READLINE_POINT</code>
<span id="index-READLINE_005fPOINT"></span>
</dt>
@@ -14995,6 +15006,7 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre
<tr><th id="Variable-Index_vr_letter-R">R</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-RANDOM"><code>RANDOM</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-READLINE_005fLINE"><code>READLINE_LINE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-READLINE_005fMARK"><code>READLINE_MARK</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-READLINE_005fPOINT"><code>READLINE_POINT</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-REPLY"><code>REPLY</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-revert_002dall_002dat_002dnewline"><code>revert-all-at-newline</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
+176 -167
View File
@@ -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.0, 26 November 2019).
Bash shell (version 5.0, 29 January 2020).
This is Edition 5.0, last updated 26 November 2019, of 'The GNU Bash
This is Edition 5.0, last updated 29 January 2020, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.0.
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.0, 26 November 2019). The Bash home page is
Bash shell (version 5.0, 29 January 2020). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.0, last updated 26 November 2019, of 'The GNU Bash
This is Edition 5.0, last updated 29 January 2020, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.0.
Bash contains features that appear in other popular shells, and some
@@ -3427,10 +3427,12 @@ standard.
Cause SHELL-COMMAND to be executed whenever KEYSEQ is entered.
When SHELL-COMMAND is executed, the shell sets the
'READLINE_LINE' variable to the contents of the Readline line
buffer and the 'READLINE_POINT' variable to the current
location of the insertion point. If the executed command
changes the value of 'READLINE_LINE' or 'READLINE_POINT',
those new values will be reflected in the editing state.
buffer and the 'READLINE_POINT' and 'READLINE_MARK' variables
to the current location of the insertion point and the saved
insertion point (the MARK), respectively. If the executed
command changes the value of any of 'READLINE_LINE',
'READLINE_POINT', or 'READLINE_MARK', those new values will be
reflected in the editing state.
'-X'
List all key sequences bound to shell commands and the
@@ -5448,6 +5450,12 @@ Variables::).
The contents of the Readline line buffer, for use with 'bind -x'
(*note Bash Builtins::).
'READLINE_MARK'
The position of the MARK (saved insertion point) in the Readline
line buffer, for use with 'bind -x' (*note Bash Builtins::). The
characters between the insertion point and the mark are often
called the REGION.
'READLINE_POINT'
The position of the insertion point in the Readline line buffer,
for use with 'bind -x' (*note Bash Builtins::).
@@ -11052,11 +11060,11 @@ D.1 Index of Shell Builtin Commands
* bind: Bash Builtins. (line 21)
* break: Bourne Shell Builtins.
(line 36)
* builtin: Bash Builtins. (line 102)
* caller: Bash Builtins. (line 111)
* builtin: Bash Builtins. (line 104)
* caller: Bash Builtins. (line 113)
* cd: Bourne Shell Builtins.
(line 44)
* command: Bash Builtins. (line 128)
* command: Bash Builtins. (line 130)
* compgen: Programmable Completion Builtins.
(line 12)
* complete: Programmable Completion Builtins.
@@ -11065,13 +11073,13 @@ D.1 Index of Shell Builtin Commands
(line 237)
* continue: Bourne Shell Builtins.
(line 85)
* declare: Bash Builtins. (line 148)
* declare: Bash Builtins. (line 150)
* dirs: Directory Stack Builtins.
(line 7)
* disown: Job Control Builtins.
(line 97)
* echo: Bash Builtins. (line 246)
* enable: Bash Builtins. (line 295)
* echo: Bash Builtins. (line 248)
* enable: Bash Builtins. (line 297)
* eval: Bourne Shell Builtins.
(line 94)
* exec: Bourne Shell Builtins.
@@ -11088,26 +11096,26 @@ D.1 Index of Shell Builtin Commands
(line 143)
* hash: Bourne Shell Builtins.
(line 187)
* help: Bash Builtins. (line 324)
* help: Bash Builtins. (line 326)
* history: Bash History Builtins.
(line 40)
* jobs: Job Control Builtins.
(line 27)
* kill: Job Control Builtins.
(line 58)
* let: Bash Builtins. (line 343)
* local: Bash Builtins. (line 351)
* logout: Bash Builtins. (line 365)
* mapfile: Bash Builtins. (line 370)
* let: Bash Builtins. (line 345)
* local: Bash Builtins. (line 353)
* logout: Bash Builtins. (line 367)
* mapfile: Bash Builtins. (line 372)
* popd: Directory Stack Builtins.
(line 35)
* printf: Bash Builtins. (line 416)
* printf: Bash Builtins. (line 418)
* pushd: Directory Stack Builtins.
(line 53)
* pwd: Bourne Shell Builtins.
(line 207)
* read: Bash Builtins. (line 460)
* readarray: Bash Builtins. (line 554)
* read: Bash Builtins. (line 462)
* readarray: Bash Builtins. (line 556)
* readonly: Bourne Shell Builtins.
(line 217)
* return: Bourne Shell Builtins.
@@ -11116,7 +11124,7 @@ D.1 Index of Shell Builtin Commands
* shift: Bourne Shell Builtins.
(line 257)
* shopt: The Shopt Builtin. (line 9)
* source: Bash Builtins. (line 563)
* source: Bash Builtins. (line 565)
* suspend: Job Control Builtins.
(line 109)
* test: Bourne Shell Builtins.
@@ -11125,12 +11133,12 @@ D.1 Index of Shell Builtin Commands
(line 349)
* trap: Bourne Shell Builtins.
(line 355)
* type: Bash Builtins. (line 568)
* typeset: Bash Builtins. (line 600)
* ulimit: Bash Builtins. (line 606)
* type: Bash Builtins. (line 570)
* typeset: Bash Builtins. (line 602)
* ulimit: Bash Builtins. (line 608)
* umask: Bourne Shell Builtins.
(line 404)
* unalias: Bash Builtins. (line 705)
* unalias: Bash Builtins. (line 707)
* unset: Bourne Shell Builtins.
(line 422)
* wait: Job Control Builtins.
@@ -11376,14 +11384,15 @@ D.3 Parameter and Variable Index
* PWD: Bash Variables. (line 598)
* RANDOM: Bash Variables. (line 601)
* READLINE_LINE: Bash Variables. (line 607)
* READLINE_POINT: Bash Variables. (line 611)
* REPLY: Bash Variables. (line 615)
* READLINE_MARK: Bash Variables. (line 611)
* READLINE_POINT: Bash Variables. (line 617)
* REPLY: Bash Variables. (line 621)
* revert-all-at-newline: Readline Init File Syntax.
(line 272)
* SECONDS: Bash Variables. (line 618)
* SHELL: Bash Variables. (line 625)
* SHELLOPTS: Bash Variables. (line 630)
* SHLVL: Bash Variables. (line 639)
* SECONDS: Bash Variables. (line 624)
* SHELL: Bash Variables. (line 631)
* SHELLOPTS: Bash Variables. (line 636)
* SHLVL: Bash Variables. (line 645)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 278)
* show-all-if-unmodified: Readline Init File Syntax.
@@ -11392,13 +11401,13 @@ D.3 Parameter and Variable Index
(line 293)
* skip-completed-text: Readline Init File Syntax.
(line 299)
* SRANDOM: Bash Variables. (line 644)
* SRANDOM: Bash Variables. (line 650)
* TEXTDOMAIN: Locale Translation. (line 11)
* TEXTDOMAINDIR: Locale Translation. (line 11)
* TIMEFORMAT: Bash Variables. (line 653)
* TMOUT: Bash Variables. (line 691)
* TMPDIR: Bash Variables. (line 703)
* UID: Bash Variables. (line 707)
* TIMEFORMAT: Bash Variables. (line 659)
* TMOUT: Bash Variables. (line 697)
* TMPDIR: Bash Variables. (line 709)
* UID: Bash Variables. (line 713)
* vi-cmd-mode-string: Readline Init File Syntax.
(line 312)
* vi-ins-mode-string: Readline Init File Syntax.
@@ -11769,135 +11778,135 @@ D.5 Concept Index

Tag Table:
Node: Top897
Node: Introduction2817
Node: What is Bash?3033
Node: What is a shell?4147
Node: Definitions6685
Node: Basic Shell Features9636
Node: Shell Syntax10855
Node: Shell Operation11881
Node: Quoting13174
Node: Escape Character14474
Node: Single Quotes14959
Node: Double Quotes15307
Node: ANSI-C Quoting16585
Node: Locale Translation17844
Node: Comments18740
Node: Shell Commands19358
Node: Simple Commands20230
Node: Pipelines20861
Node: Lists23793
Node: Compound Commands25584
Node: Looping Constructs26596
Node: Conditional Constructs29091
Node: Command Grouping40662
Node: Coprocesses42141
Node: GNU Parallel44044
Node: Shell Functions48345
Node: Shell Parameters55552
Node: Positional Parameters59965
Node: Special Parameters60865
Node: Shell Expansions64089
Node: Brace Expansion66212
Node: Tilde Expansion68935
Node: Shell Parameter Expansion71552
Node: Command Substitution85985
Node: Arithmetic Expansion87340
Node: Process Substitution88272
Node: Word Splitting89392
Node: Filename Expansion91336
Node: Pattern Matching93885
Node: Quote Removal97871
Node: Redirections98166
Node: Executing Commands107724
Node: Simple Command Expansion108394
Node: Command Search and Execution110348
Node: Command Execution Environment112724
Node: Environment115708
Node: Exit Status117367
Node: Signals119037
Node: Shell Scripts121004
Node: Shell Builtin Commands124016
Node: Bourne Shell Builtins126054
Node: Bash Builtins146978
Node: Modifying Shell Behavior175903
Node: The Set Builtin176248
Node: The Shopt Builtin186661
Node: Special Builtins204331
Node: Shell Variables205310
Node: Bourne Shell Variables205747
Node: Bash Variables207851
Node: Bash Features239793
Node: Invoking Bash240692
Node: Bash Startup Files246705
Node: Interactive Shells251808
Node: What is an Interactive Shell?252218
Node: Is this Shell Interactive?252867
Node: Interactive Shell Behavior253682
Node: Bash Conditional Expressions257169
Node: Shell Arithmetic261746
Node: Aliases264686
Node: Arrays267306
Node: The Directory Stack272671
Node: Directory Stack Builtins273455
Node: Controlling the Prompt276423
Node: The Restricted Shell279344
Node: Bash POSIX Mode281826
Node: Job Control292713
Node: Job Control Basics293173
Node: Job Control Builtins298137
Node: Job Control Variables303283
Node: Command Line Editing304439
Node: Introduction and Notation306110
Node: Readline Interaction307733
Node: Readline Bare Essentials308924
Node: Readline Movement Commands310707
Node: Readline Killing Commands311667
Node: Readline Arguments313585
Node: Searching314629
Node: Readline Init File316815
Node: Readline Init File Syntax318074
Node: Conditional Init Constructs338604
Node: Sample Init File342800
Node: Bindable Readline Commands345917
Node: Commands For Moving347121
Node: Commands For History348980
Node: Commands For Text353275
Node: Commands For Killing356663
Node: Numeric Arguments359478
Node: Commands For Completion360617
Node: Keyboard Macros364808
Node: Miscellaneous Commands365495
Node: Readline vi Mode371448
Node: Programmable Completion372355
Node: Programmable Completion Builtins380135
Node: A Programmable Completion Example390830
Node: Using History Interactively396077
Node: Bash History Facilities396761
Node: Bash History Builtins399766
Node: History Interaction404298
Node: Event Designators407918
Node: Word Designators409272
Node: Modifiers411032
Node: Installing Bash412843
Node: Basic Installation413980
Node: Compilers and Options417238
Node: Compiling For Multiple Architectures417979
Node: Installation Names419672
Node: Specifying the System Type420490
Node: Sharing Defaults421206
Node: Operation Controls421879
Node: Optional Features422837
Node: Reporting Bugs433355
Node: Major Differences From The Bourne Shell434549
Node: GNU Free Documentation License451401
Node: Indexes476578
Node: Builtin Index477032
Node: Reserved Word Index483859
Node: Variable Index486307
Node: Function Index502131
Node: Concept Index515570
Node: Top895
Node: Introduction2813
Node: What is Bash?3029
Node: What is a shell?4143
Node: Definitions6681
Node: Basic Shell Features9632
Node: Shell Syntax10851
Node: Shell Operation11877
Node: Quoting13170
Node: Escape Character14470
Node: Single Quotes14955
Node: Double Quotes15303
Node: ANSI-C Quoting16581
Node: Locale Translation17840
Node: Comments18736
Node: Shell Commands19354
Node: Simple Commands20226
Node: Pipelines20857
Node: Lists23789
Node: Compound Commands25580
Node: Looping Constructs26592
Node: Conditional Constructs29087
Node: Command Grouping40658
Node: Coprocesses42137
Node: GNU Parallel44040
Node: Shell Functions48341
Node: Shell Parameters55548
Node: Positional Parameters59961
Node: Special Parameters60861
Node: Shell Expansions64085
Node: Brace Expansion66208
Node: Tilde Expansion68931
Node: Shell Parameter Expansion71548
Node: Command Substitution85981
Node: Arithmetic Expansion87336
Node: Process Substitution88268
Node: Word Splitting89388
Node: Filename Expansion91332
Node: Pattern Matching93881
Node: Quote Removal97867
Node: Redirections98162
Node: Executing Commands107720
Node: Simple Command Expansion108390
Node: Command Search and Execution110344
Node: Command Execution Environment112720
Node: Environment115704
Node: Exit Status117363
Node: Signals119033
Node: Shell Scripts121000
Node: Shell Builtin Commands124012
Node: Bourne Shell Builtins126050
Node: Bash Builtins146974
Node: Modifying Shell Behavior176020
Node: The Set Builtin176365
Node: The Shopt Builtin186778
Node: Special Builtins204448
Node: Shell Variables205427
Node: Bourne Shell Variables205864
Node: Bash Variables207968
Node: Bash Features240159
Node: Invoking Bash241058
Node: Bash Startup Files247071
Node: Interactive Shells252174
Node: What is an Interactive Shell?252584
Node: Is this Shell Interactive?253233
Node: Interactive Shell Behavior254048
Node: Bash Conditional Expressions257535
Node: Shell Arithmetic262112
Node: Aliases265052
Node: Arrays267672
Node: The Directory Stack273037
Node: Directory Stack Builtins273821
Node: Controlling the Prompt276789
Node: The Restricted Shell279710
Node: Bash POSIX Mode282192
Node: Job Control293079
Node: Job Control Basics293539
Node: Job Control Builtins298503
Node: Job Control Variables303649
Node: Command Line Editing304805
Node: Introduction and Notation306476
Node: Readline Interaction308099
Node: Readline Bare Essentials309290
Node: Readline Movement Commands311073
Node: Readline Killing Commands312033
Node: Readline Arguments313951
Node: Searching314995
Node: Readline Init File317181
Node: Readline Init File Syntax318440
Node: Conditional Init Constructs338970
Node: Sample Init File343166
Node: Bindable Readline Commands346283
Node: Commands For Moving347487
Node: Commands For History349346
Node: Commands For Text353641
Node: Commands For Killing357029
Node: Numeric Arguments359844
Node: Commands For Completion360983
Node: Keyboard Macros365174
Node: Miscellaneous Commands365861
Node: Readline vi Mode371814
Node: Programmable Completion372721
Node: Programmable Completion Builtins380501
Node: A Programmable Completion Example391196
Node: Using History Interactively396443
Node: Bash History Facilities397127
Node: Bash History Builtins400132
Node: History Interaction404664
Node: Event Designators408284
Node: Word Designators409638
Node: Modifiers411398
Node: Installing Bash413209
Node: Basic Installation414346
Node: Compilers and Options417604
Node: Compiling For Multiple Architectures418345
Node: Installation Names420038
Node: Specifying the System Type420856
Node: Sharing Defaults421572
Node: Operation Controls422245
Node: Optional Features423203
Node: Reporting Bugs433721
Node: Major Differences From The Bourne Shell434915
Node: GNU Free Documentation License451767
Node: Indexes476944
Node: Builtin Index477398
Node: Reserved Word Index484225
Node: Variable Index486673
Node: Function Index502570
Node: Concept Index516009

End Tag Table
+5 -18
View File
@@ -1,4 +1,4 @@
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/MacPorts 2019.50896_1) (preloaded format=pdfetex 2019.11.6) 17 JAN 2020 11:15
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/MacPorts 2019.50896_1) (preloaded format=pdfetex 2019.11.6) 29 JAN 2020 14:04
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
@@ -269,24 +269,11 @@ texinfo.tex: doing @include of fdl.texi
(/Users/chet/src/bash/src/doc/fdl.texi [165] [166]
[167] [168] [169] [170] [171]) Appendix D [172] [173] [174] [175] [176]
Overfull \vbox (0.67252pt too high) has occurred while \output is active
\vbox(340.17245+0.0)x207.80492
.\glue(\topskip) 0.0
.\hbox(9.87999+0.0)x207.80492, glue set 197.20078fil
..\kern -0.46252
..\secrm P
..\glue 0.0 plus 1.0fil minus 1.0fil
.\penalty 10000
.\glue 3.46501 plus 1.05006
.\glue 0.0 plus 0.5
.etc.
[177] [178] [179] [180] [181] )
Here is how much of TeX's memory you used:
4069 strings out of 497098
47090 string characters out of 6206772
137084 words of memory out of 5000000
137494 words of memory out of 5000000
4848 multiletter control sequences out of 15000+600000
34315 words of font info for 116 fonts, out of 8000000 for 9000
51 hyphenation exceptions out of 8191
@@ -308,10 +295,10 @@ s/type1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texlive/fonts/typ
e1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
lic/cm-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm
-super/sfrm1440.pfb>
Output written on bashref.pdf (187 pages, 759156 bytes).
Output written on bashref.pdf (187 pages, 759734 bytes).
PDF statistics:
2644 PDF objects out of 2984 (max. 8388607)
2411 compressed objects within 25 object streams
2646 PDF objects out of 2984 (max. 8388607)
2413 compressed objects within 25 object streams
313 named destinations out of 1000 (max. 500000)
1125 words of extra memory for PDF output out of 10000 (max. 10000000)
BIN
View File
Binary file not shown.
+256 -243
View File
@@ -1,7 +1,7 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.999 Copyright 2019 Radical Eye Software
%%Title: bashref.dvi
%%CreationDate: Fri Jan 17 16:15:33 2020
%%CreationDate: Wed Jan 29 19:04:22 2020
%%Pages: 187
%%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.01.17:1115
%DVIPSSource: TeX output 2020.01.29:1404
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -7638,22 +7638,22 @@ 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.0,)g(for)f
Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.0.)3139 1697 y(No)m(v)m(em)m(b)s(er)g
(2019)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.0.)3218 1697 y(Jan)m(uary)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.0,)c(26)f(No)m(v)m(em)m
(b)s(er)g(2019\).)150 4523 y(This)e(is)i(Edition)f(5.0,)h(last)g(up)s
(dated)e(26)i(No)m(v)m(em)m(b)s(er)h(2019,)g(of)e Fr(The)g(GNU)h(Bash)f
(Reference)h(Man)m(ual)p Fu(,)150 4633 y(for)f Ft(Bash)p
Fu(,)g(V)-8 b(ersion)31 b(5.0.)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
(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.0,)c(29)f(Jan)m(uary)f
(2020\).)150 4523 y(This)35 b(is)h(Edition)f(5.0,)k(last)d(up)s(dated)f
(29)h(Jan)m(uary)f(2020,)k(of)d Fr(The)f(GNU)i(Bash)e(Reference)i(Man)m
(ual)p Fu(,)150 4633 y(for)30 b Ft(Bash)p Fu(,)g(V)-8
b(ersion)31 b(5.0.)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
@@ -11922,68 +11922,71 @@ eop end
TeXDict begin 52 57 bop 150 -116 a Fu(Chapter)30 b(4:)41
b(Shell)30 b(Builtin)h(Commands)2069 b(52)870 299 y Ft(bind)47
b([-m)g Fj(keymap)p Ft(])e Fj(keyseq:readline-command)630
436 y Fu(Displa)m(y)22 b(curren)m(t)f(Readline)h(\(see)f(Chapter)g(8)g
432 y Fu(Displa)m(y)22 b(curren)m(t)f(Readline)h(\(see)f(Chapter)g(8)g
([Command)f(Line)h(Editing],)j(page)e(109\))g(k)m(ey)630
545 y(and)36 b(function)g(bindings,)i(bind)d(a)i(k)m(ey)g(sequence)g
(to)h(a)f(Readline)g(function)f(or)h(macro,)630 655 y(or)44
542 y(and)36 b(function)g(bindings,)i(bind)d(a)i(k)m(ey)g(sequence)g
(to)h(a)f(Readline)g(function)f(or)h(macro,)630 651 y(or)44
b(set)h(a)g(Readline)f(v)-5 b(ariable.)83 b(Eac)m(h)45
b(non-option)g(argumen)m(t)f(is)g(a)h(command)f(as)g(it)630
765 y(w)m(ould)e(app)s(ear)f(in)h(a)h(Readline)g(initialization)i
761 y(w)m(ould)e(app)s(ear)f(in)h(a)h(Readline)g(initialization)i
(\014le)d(\(see)h(Section)g(8.3)g([Readline)g(Init)630
874 y(File],)c(page)d(112\),)j(but)c(eac)m(h)h(binding)f(or)g(command)h
(m)m(ust)f(b)s(e)g(passed)g(as)h(a)g(separate)630 984
870 y(File],)c(page)d(112\),)j(but)c(eac)m(h)h(binding)f(or)g(command)h
(m)m(ust)f(b)s(e)g(passed)g(as)h(a)g(separate)630 980
y(argumen)m(t;)31 b(e.g.,)h(`)p Ft("\\C-x\\C-r":re-read-init-f)o(ile)p
Fu('.)630 1121 y(Options,)e(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m
(wing)h(meanings:)630 1285 y Ft(-m)e Fj(keymap)66 b Fu(Use)54
Fu('.)630 1113 y(Options,)e(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m
(wing)h(meanings:)630 1270 y Ft(-m)e Fj(keymap)66 b Fu(Use)54
b Fr(k)m(eymap)j Fu(as)d(the)g(k)m(eymap)g(to)h(b)s(e)e(a\013ected)i(b)
m(y)f(the)g(subsequen)m(t)1110 1395 y(bindings.)46 b(Acceptable)34
m(y)f(the)g(subsequen)m(t)1110 1379 y(bindings.)46 b(Acceptable)34
b Fr(k)m(eymap)i Fu(names)c(are)h Ft(emacs)p Fu(,)f Ft(emacs-standard)p
Fu(,)1110 1504 y Ft(emacs-meta)p Fu(,)99 b Ft(emacs-ctlx)p
Fu(,)1110 1489 y Ft(emacs-meta)p Fu(,)99 b Ft(emacs-ctlx)p
Fu(,)f Ft(vi)p Fu(,)j Ft(vi-move)p Fu(,)f Ft(vi-command)p
Fu(,)f(and)1110 1614 y Ft(vi-insert)p Fu(.)81 b Ft(vi)44
Fu(,)f(and)1110 1598 y Ft(vi-insert)p Fu(.)81 b Ft(vi)44
b Fu(is)h(equiv)-5 b(alen)m(t)46 b(to)g Ft(vi-command)c
Fu(\()p Ft(vi-move)h Fu(is)i(also)h(a)1110 1724 y(synon)m(ym\);)30
Fu(\()p Ft(vi-move)h Fu(is)i(also)h(a)1110 1708 y(synon)m(ym\);)30
b Ft(emacs)f Fu(is)i(equiv)-5 b(alen)m(t)32 b(to)f Ft(emacs-standard)p
Fu(.)630 1888 y Ft(-l)384 b Fu(List)31 b(the)f(names)g(of)h(all)g
(Readline)g(functions.)630 2052 y Ft(-p)384 b Fu(Displa)m(y)34
Fu(.)630 1864 y Ft(-l)384 b Fu(List)31 b(the)f(names)g(of)h(all)g
(Readline)g(functions.)630 2021 y Ft(-p)384 b Fu(Displa)m(y)34
b(Readline)f(function)g(names)g(and)f(bindings)f(in)i(suc)m(h)f(a)i(w)m
(a)m(y)f(that)1110 2162 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g
(in)g(a)h(Readline)g(initialization)i(\014le.)630 2326
(a)m(y)f(that)1110 2131 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g
(in)g(a)h(Readline)g(initialization)i(\014le.)630 2287
y Ft(-P)384 b Fu(List)31 b(curren)m(t)f(Readline)h(function)f(names)g
(and)g(bindings.)630 2491 y Ft(-v)384 b Fu(Displa)m(y)25
(and)g(bindings.)630 2444 y Ft(-v)384 b Fu(Displa)m(y)25
b(Readline)f(v)-5 b(ariable)25 b(names)f(and)f(v)-5 b(alues)24
b(in)g(suc)m(h)f(a)i(w)m(a)m(y)f(that)h(they)1110 2600
b(in)g(suc)m(h)f(a)i(w)m(a)m(y)f(that)h(they)1110 2553
y(can)31 b(b)s(e)e(used)h(as)h(input)e(or)h(in)g(a)h(Readline)g
(initialization)j(\014le.)630 2765 y Ft(-V)384 b Fu(List)31
(initialization)j(\014le.)630 2710 y Ft(-V)384 b Fu(List)31
b(curren)m(t)f(Readline)h(v)-5 b(ariable)31 b(names)f(and)g(v)-5
b(alues.)630 2929 y Ft(-s)384 b Fu(Displa)m(y)39 b(Readline)f(k)m(ey)g
b(alues.)630 2866 y Ft(-s)384 b Fu(Displa)m(y)39 b(Readline)f(k)m(ey)g
(sequences)f(b)s(ound)f(to)i(macros)g(and)f(the)g(strings)1110
3039 y(they)d(output)f(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g
(can)g(b)s(e)f(used)g(as)h(input)e(or)i(in)g(a)1110 3148
y(Readline)d(initialization)i(\014le.)630 3313 y Ft(-S)384
2976 y(they)d(output)f(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g
(can)g(b)s(e)f(used)g(as)h(input)e(or)i(in)g(a)1110 3086
y(Readline)d(initialization)i(\014le.)630 3242 y Ft(-S)384
b Fu(Displa)m(y)39 b(Readline)f(k)m(ey)g(sequences)f(b)s(ound)f(to)i
(macros)g(and)f(the)g(strings)1110 3422 y(they)31 b(output.)630
3587 y Ft(-f)f Fj(filename)1110 3696 y Fu(Read)h(k)m(ey)g(bindings)e
(from)h Fr(\014lename)p Fu(.)630 3861 y Ft(-q)g Fj(function)1110
3970 y Fu(Query)g(ab)s(out)g(whic)m(h)g(k)m(eys)h(in)m(v)m(ok)m(e)h
(the)f(named)f Fr(function)p Fu(.)630 4134 y Ft(-u)g
Fj(function)1110 4244 y Fu(Un)m(bind)f(all)i(k)m(eys)g(b)s(ound)e(to)i
(the)f(named)g Fr(function)p Fu(.)630 4408 y Ft(-r)g
(macros)g(and)f(the)g(strings)1110 3352 y(they)31 b(output.)630
3508 y Ft(-f)f Fj(filename)1110 3618 y Fu(Read)h(k)m(ey)g(bindings)e
(from)h Fr(\014lename)p Fu(.)630 3774 y Ft(-q)g Fj(function)1110
3884 y Fu(Query)g(ab)s(out)g(whic)m(h)g(k)m(eys)h(in)m(v)m(ok)m(e)h
(the)f(named)f Fr(function)p Fu(.)630 4041 y Ft(-u)g
Fj(function)1110 4150 y Fu(Un)m(bind)f(all)i(k)m(eys)g(b)s(ound)e(to)i
(the)f(named)g Fr(function)p Fu(.)630 4307 y Ft(-r)g
Fj(keyseq)66 b Fu(Remo)m(v)m(e)32 b(an)m(y)f(curren)m(t)f(binding)f
(for)h Fr(k)m(eyseq)p Fu(.)630 4573 y Ft(-x)g Fj(keyseq:shell-command)
1110 4682 y Fu(Cause)35 b Fr(shell-command)k Fu(to)d(b)s(e)f(executed)h
(for)h Fr(k)m(eyseq)p Fu(.)630 4463 y Ft(-x)g Fj(keyseq:shell-command)
1110 4573 y Fu(Cause)35 b Fr(shell-command)k Fu(to)d(b)s(e)f(executed)h
(whenev)m(er)f Fr(k)m(eyseq)j Fu(is)d(en)m(tered.)1110
4792 y(When)46 b Fr(shell-command)k Fu(is)c(executed,)51
b(the)46 b(shell)g(sets)g(the)g Ft(READLINE_)1110 4902
4682 y(When)46 b Fr(shell-command)k Fu(is)c(executed,)51
b(the)46 b(shell)g(sets)g(the)g Ft(READLINE_)1110 4792
y(LINE)37 b Fu(v)-5 b(ariable)38 b(to)g(the)g(con)m(ten)m(ts)i(of)e
(the)g(Readline)g(line)g(bu\013er)f(and)g(the)1110 5011
y Ft(READLINE_POINT)e Fu(v)-5 b(ariable)39 b(to)h(the)e(curren)m(t)h
(lo)s(cation)h(of)f(the)g(insertion)1110 5121 y(p)s(oin)m(t.)59
b(If)37 b(the)f(executed)i(command)e(c)m(hanges)i(the)f(v)-5
b(alue)37 b(of)f Ft(READLINE_)1110 5230 y(LINE)29 b Fu(or)h
Ft(READLINE_POINT)p Fu(,)c(those)31 b(new)e(v)-5 b(alues)31
b(will)f(b)s(e)f(re\015ected)i(in)f(the)1110 5340 y(editing)h(state.)p
eop end
(the)g(Readline)g(line)g(bu\013er)f(and)g(the)1110 4902
y Ft(READLINE_POINT)21 b Fu(and)k Ft(READLINE_MARK)c
Fu(v)-5 b(ariables)26 b(to)g(the)g(curren)m(t)f(lo)s(ca-)1110
5011 y(tion)f(of)g(the)g(insertion)g(p)s(oin)m(t)g(and)f(the)h(sa)m(v)m
(ed)h(insertion)f(p)s(oin)m(t)g(\(the)g Fr(mark)6 b Fu(\),)1110
5121 y(resp)s(ectiv)m(ely)-8 b(.)43 b(If)30 b(the)h(executed)g(command)
g(c)m(hanges)g(the)g(v)-5 b(alue)31 b(of)g(an)m(y)g(of)1110
5230 y Ft(READLINE_LINE)p Fu(,)40 b Ft(READLINE_POINT)p
Fu(,)f(or)i Ft(READLINE_MARK)p Fu(,)e(those)i(new)1110
5340 y(v)-5 b(alues)31 b(will)f(b)s(e)g(re\015ected)h(in)f(the)h
(editing)g(state.)p eop end
%%Page: 53 59
TeXDict begin 53 58 bop 150 -116 a Fu(Chapter)30 b(4:)41
b(Shell)30 b(Builtin)h(Commands)2069 b(53)630 299 y Ft(-X)384
@@ -14146,142 +14149,149 @@ b Fu(The)34 b(v)-5 b(alue)35 b(of)f(this)g(v)-5 b(ariable)35
b(is)g(used)e(as)i(the)f(prompt)g(for)g(the)g Ft(select)f
Fu(command.)52 b(If)630 408 y(this)30 b(v)-5 b(ariable)31
b(is)g(not)f(set,)i(the)e Ft(select)f Fu(command)h(prompts)f(with)h(`)p
Ft(#?)g Fu(')150 568 y Ft(PS4)336 b Fu(The)37 b(v)-5
Ft(#?)g Fu(')150 564 y Ft(PS4)336 b Fu(The)37 b(v)-5
b(alue)37 b(of)g(this)g(parameter)h(is)f(expanded)f(lik)m(e)i
Fr(PS1)44 b Fu(and)37 b(the)g(expanded)f(v)-5 b(alue)38
b(is)630 677 y(the)d(prompt)f(prin)m(ted)g(b)s(efore)g(the)h(command)f
b(is)630 673 y(the)d(prompt)f(prin)m(ted)g(b)s(efore)g(the)h(command)f
(line)h(is)g(ec)m(ho)s(ed)g(when)f(the)h Ft(-x)f Fu(option)h(is)630
787 y(set)k(\(see)h(Section)g(4.3.1)g([The)f(Set)g(Builtin],)j(page)e
783 y(set)k(\(see)h(Section)g(4.3.1)g([The)f(Set)g(Builtin],)j(page)e
(62\).)67 b(The)38 b(\014rst)g(c)m(haracter)j(of)e(the)630
897 y(expanded)33 b(v)-5 b(alue)33 b(is)h(replicated)g(m)m(ultiple)g
892 y(expanded)33 b(v)-5 b(alue)33 b(is)h(replicated)g(m)m(ultiple)g
(times,)h(as)f(necessary)-8 b(,)35 b(to)f(indicate)g(m)m(ultiple)630
1006 y(lev)m(els)e(of)e(indirection.)42 b(The)29 b(default)i(is)f(`)p
Ft(+)h Fu('.)150 1166 y Ft(PWD)336 b Fu(The)30 b(curren)m(t)g(w)m
1002 y(lev)m(els)e(of)e(indirection.)42 b(The)29 b(default)i(is)f(`)p
Ft(+)h Fu('.)150 1157 y Ft(PWD)336 b Fu(The)30 b(curren)m(t)g(w)m
(orking)h(directory)g(as)f(set)h(b)m(y)f(the)h Ft(cd)f
Fu(builtin.)150 1325 y Ft(RANDOM)192 b Fu(Eac)m(h)26
Fu(builtin.)150 1313 y Ft(RANDOM)192 b Fu(Eac)m(h)26
b(time)g(this)f(parameter)h(is)g(referenced,)g(it)g(expands)f(to)h(a)g
(random)e(in)m(teger)j(b)s(et)m(w)m(een)630 1435 y(0)e(and)e(32767.)41
(random)e(in)m(teger)j(b)s(et)m(w)m(een)630 1422 y(0)e(and)e(32767.)41
b(Assigning)25 b(a)f(v)-5 b(alue)25 b(to)g(this)f(v)-5
b(ariable)25 b(seeds)f(the)h(random)e(n)m(um)m(b)s(er)g(gener-)630
1544 y(ator.)41 b(If)27 b Ft(RANDOM)f Fu(is)h(unset,)h(it)g(loses)h
1532 y(ator.)41 b(If)27 b Ft(RANDOM)f Fu(is)h(unset,)h(it)g(loses)h
(its)f(sp)s(ecial)g(prop)s(erties,)g(ev)m(en)g(if)g(it)g(is)f
(subsequen)m(tly)630 1654 y(reset.)150 1813 y Ft(READLINE_LINE)630
1923 y Fu(The)g(con)m(ten)m(ts)i(of)f(the)g(Readline)g(line)g
(subsequen)m(tly)630 1641 y(reset.)150 1797 y Ft(READLINE_LINE)630
1906 y Fu(The)g(con)m(ten)m(ts)i(of)f(the)g(Readline)g(line)g
(bu\013er,)f(for)h(use)f(with)g(`)p Ft(bind)j(-x)p Fu(')d(\(see)h
(Section)h(4.2)630 2032 y([Bash)i(Builtins],)g(page)g(51\).)150
2192 y Ft(READLINE_POINT)630 2301 y Fu(The)23 b(p)s(osition)g(of)g(the)
(Section)h(4.2)630 2016 y([Bash)i(Builtins],)g(page)g(51\).)150
2171 y Ft(READLINE_MARK)630 2281 y Fu(The)26 b(p)s(osition)h(of)g(the)g
Fr(mark)32 b Fu(\(sa)m(v)m(ed)c(insertion)f(p)s(oin)m(t\))g(in)g(the)g
(Readline)g(line)g(bu\013er,)g(for)630 2390 y(use)36
b(with)f(`)p Ft(bind)30 b(-x)p Fu(')35 b(\(see)i(Section)g(4.2)g([Bash)
f(Builtins],)i(page)f(51\).)58 b(The)35 b(c)m(haracters)630
2500 y(b)s(et)m(w)m(een)c(the)g(insertion)f(p)s(oin)m(t)g(and)g(the)h
(mark)f(are)h(often)f(called)i(the)f Fr(region)p Fu(.)150
2655 y Ft(READLINE_POINT)630 2765 y Fu(The)23 b(p)s(osition)g(of)g(the)
h(insertion)f(p)s(oin)m(t)g(in)g(the)g(Readline)h(line)f(bu\013er,)h
(for)f(use)g(with)g(`)p Ft(bind)630 2411 y(-x)p Fu(')30
(for)f(use)g(with)g(`)p Ft(bind)630 2874 y(-x)p Fu(')30
b(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(51\).)150
2570 y Ft(REPLY)240 b Fu(The)30 b(default)g(v)-5 b(ariable)32
b(for)e(the)g Ft(read)g Fu(builtin.)150 2730 y Ft(SECONDS)144
3029 y Ft(REPLY)240 b Fu(The)30 b(default)g(v)-5 b(ariable)32
b(for)e(the)g Ft(read)g Fu(builtin.)150 3185 y Ft(SECONDS)144
b Fu(This)40 b(v)-5 b(ariable)41 b(expands)f(to)h(the)g(n)m(um)m(b)s
(er)e(of)i(seconds)g(since)g(the)f(shell)h(w)m(as)g(started.)630
2839 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43
3294 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43
b(resets)g(the)g(coun)m(t)g(to)g(the)g(v)-5 b(alue)43
b(assigned,)j(and)c(the)630 2949 y(expanded)35 b(v)-5
b(assigned,)j(and)c(the)630 3404 y(expanded)35 b(v)-5
b(alue)36 b(b)s(ecomes)h(the)f(v)-5 b(alue)36 b(assigned)g(plus)f(the)h
(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 3059 y(the)c(assignmen)m
(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 3513 y(the)c(assignmen)m
(t.)46 b(If)31 b Ft(SECONDS)f Fu(is)h(unset,)h(it)h(loses)f(its)g(sp)s
(ecial)h(prop)s(erties,)e(ev)m(en)i(if)f(it)g(is)630
3168 y(subsequen)m(tly)e(reset.)150 3328 y Ft(SHELL)240
3623 y(subsequen)m(tly)e(reset.)150 3778 y Ft(SHELL)240
b Fu(This)24 b(en)m(vironmen)m(t)i(v)-5 b(ariable)26
b(expands)e(to)i(the)g(full)f(pathname)g(to)h(the)f(shell.)39
b(If)25 b(it)g(is)h(not)630 3437 y(set)36 b(when)f(the)h(shell)g
b(If)25 b(it)g(is)h(not)630 3888 y(set)36 b(when)f(the)h(shell)g
(starts,)i(Bash)e(assigns)h(to)f(it)h(the)f(full)f(pathname)h(of)g(the)
g(curren)m(t)630 3547 y(user's)30 b(login)h(shell.)150
3706 y Ft(SHELLOPTS)630 3816 y Fu(A)g(colon-separated)h(list)f(of)g
g(curren)m(t)630 3998 y(user's)30 b(login)h(shell.)150
4153 y Ft(SHELLOPTS)630 4262 y Fu(A)g(colon-separated)h(list)f(of)g
(enabled)f(shell)h(options.)41 b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h
(list)g(is)g(a)g(v)-5 b(alid)630 3925 y(argumen)m(t)28
(list)g(is)g(a)g(v)-5 b(alid)630 4372 y(argumen)m(t)28
b(for)f(the)h Ft(-o)e Fu(option)i(to)g(the)g Ft(set)e
Fu(builtin)h(command)g(\(see)i(Section)f(4.3.1)h([The)630
4035 y(Set)g(Builtin],)h(page)f(62\).)42 b(The)28 b(options)h(app)s
4482 y(Set)g(Builtin],)h(page)f(62\).)42 b(The)28 b(options)h(app)s
(earing)f(in)g Ft(SHELLOPTS)e Fu(are)j(those)h(rep)s(orted)630
4144 y(as)g(`)p Ft(on)p Fu(')f(b)m(y)h(`)p Ft(set)g(-o)p
4591 y(as)g(`)p Ft(on)p Fu(')f(b)m(y)h(`)p Ft(set)g(-o)p
Fu('.)40 b(If)29 b(this)h(v)-5 b(ariable)30 b(is)g(in)f(the)h(en)m
(vironmen)m(t)g(when)f(Bash)h(starts)g(up,)630 4254 y(eac)m(h)41
(vironmen)m(t)g(when)f(Bash)h(starts)g(up,)630 4701 y(eac)m(h)41
b(shell)e(option)h(in)f(the)h(list)g(will)f(b)s(e)g(enabled)h(b)s
(efore)f(reading)g(an)m(y)h(startup)f(\014les.)630 4364
(efore)f(reading)g(an)m(y)h(startup)f(\014les.)630 4810
y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)150
4523 y Ft(SHLVL)240 b Fu(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)m(h)h
4966 y Ft(SHLVL)240 b Fu(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)m(h)h
(time)f(a)h(new)e(instance)h(of)g(Bash)g(is)g(started.)38
b(This)20 b(is)h(in)m(tended)630 4633 y(to)31 b(b)s(e)f(a)h(coun)m(t)g
b(This)20 b(is)h(in)m(tended)630 5075 y(to)31 b(b)s(e)f(a)h(coun)m(t)g
(of)f(ho)m(w)h(deeply)f(y)m(our)g(Bash)h(shells)f(are)h(nested.)150
4792 y Ft(SRANDOM)144 b Fu(This)36 b(v)-5 b(ariable)37
5230 y Ft(SRANDOM)144 b Fu(This)36 b(v)-5 b(ariable)37
b(expands)f(to)h(a)g(32-bit)h(pseudo-random)d(n)m(um)m(b)s(er)g(eac)m
(h)j(time)f(it)g(is)g(ref-)630 4902 y(erenced.)47 b(The)32
(h)j(time)f(it)g(is)g(ref-)630 5340 y(erenced.)47 b(The)32
b(random)g(n)m(um)m(b)s(er)f(generator)j(is)e(not)h(linear)g(on)f
(systems)h(that)g(supp)s(ort)630 5011 y Ft(/dev/urandom)26
b Fu(or)k Ft(arc4random)p Fu(,)d(so)j(eac)m(h)g(returned)f(n)m(um)m(b)s
(er)f(has)h(no)g(relationship)h(to)630 5121 y(the)39
b(n)m(um)m(b)s(ers)e(preceding)i(it.)66 b(The)38 b(random)g(n)m(um)m(b)
s(er)f(generator)j(cannot)g(b)s(e)e(seeded,)630 5230
y(so)c(assignmen)m(ts)g(to)g(this)f(v)-5 b(ariable)34
b(ha)m(v)m(e)h(no)e(e\013ect.)51 b(If)33 b Ft(SRANDOM)e
Fu(is)j(unset,)g(it)f(loses)i(its)630 5340 y(sp)s(ecial)c(prop)s
(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f(reset.)p
eop end
(systems)h(that)g(supp)s(ort)p eop end
%%Page: 85 91
TeXDict begin 85 90 bop 150 -116 a Fu(Chapter)30 b(5:)41
b(Shell)30 b(V)-8 b(ariables)2459 b(85)150 299 y Ft(TIMEFORMAT)630
408 y Fu(The)30 b(v)-5 b(alue)32 b(of)f(this)g(parameter)g(is)g(used)f
(as)h(a)g(format)h(string)f(sp)s(ecifying)f(ho)m(w)h(the)g(tim-)630
518 y(ing)37 b(information)f(for)h(pip)s(elines)f(pre\014xed)f(with)h
(the)h Ft(time)e Fu(reserv)m(ed)i(w)m(ord)f(should)g(b)s(e)630
628 y(displa)m(y)m(ed.)k(The)27 b(`)p Ft(\045)p Fu(')h(c)m(haracter)h
b(Shell)30 b(V)-8 b(ariables)2459 b(85)630 299 y Ft(/dev/urandom)26
b Fu(or)k Ft(arc4random)p Fu(,)d(so)j(eac)m(h)g(returned)f(n)m(um)m(b)s
(er)f(has)h(no)g(relationship)h(to)630 408 y(the)39 b(n)m(um)m(b)s(ers)
e(preceding)i(it.)66 b(The)38 b(random)g(n)m(um)m(b)s(er)f(generator)j
(cannot)g(b)s(e)e(seeded,)630 518 y(so)c(assignmen)m(ts)g(to)g(this)f
(v)-5 b(ariable)34 b(ha)m(v)m(e)h(no)e(e\013ect.)51 b(If)33
b Ft(SRANDOM)e Fu(is)j(unset,)g(it)f(loses)i(its)630
628 y(sp)s(ecial)c(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)
m(tly)f(reset.)150 787 y Ft(TIMEFORMAT)630 897 y Fu(The)g(v)-5
b(alue)32 b(of)f(this)g(parameter)g(is)g(used)f(as)h(a)g(format)h
(string)f(sp)s(ecifying)f(ho)m(w)h(the)g(tim-)630 1006
y(ing)37 b(information)f(for)h(pip)s(elines)f(pre\014xed)f(with)h(the)h
Ft(time)e Fu(reserv)m(ed)i(w)m(ord)f(should)g(b)s(e)630
1116 y(displa)m(y)m(ed.)k(The)27 b(`)p Ft(\045)p Fu(')h(c)m(haracter)h
(in)m(tro)s(duces)e(an)h(escap)s(e)g(sequence)g(that)g(is)f(expanded)g
(to)630 737 y(a)37 b(time)g(v)-5 b(alue)36 b(or)h(other)f(information.)
59 b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i(meanings)630
847 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h(p)
s(ortions.)630 1006 y Ft(\045\045)384 b Fu(A)30 b(literal)i(`)p
Ft(\045)p Fu('.)630 1166 y Ft(\045[)p Fj(p)p Ft(][l]R)96
b Fu(The)30 b(elapsed)h(time)g(in)f(seconds.)630 1325
y Ft(\045[)p Fj(p)p Ft(][l]U)96 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h
(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(user)f(mo)s(de.)630
1484 y Ft(\045[)p Fj(p)p Ft(][l]S)96 b Fu(The)30 b(n)m(um)m(b)s(er)f
(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(system)g(mo)s(de.)630
1644 y Ft(\045P)384 b Fu(The)30 b(CPU)g(p)s(ercen)m(tage,)i(computed)e
(as)h(\(\045U)f Ft(+)g Fu(\045S\))g(/)h(\045R.)630 1803
y(The)23 b(optional)j Fr(p)g Fu(is)e(a)g(digit)h(sp)s(ecifying)e(the)h
(precision,)i(the)e(n)m(um)m(b)s(er)f(of)h(fractional)h(digits)630
1913 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35
b(v)-5 b(alue)36 b(of)f(0)h(causes)g(no)f(decimal)h(p)s(oin)m(t)f(or)h
(fraction)g(to)g(b)s(e)630 2022 y(output.)48 b(A)m(t)34
b(most)f(three)g(places)h(after)f(the)g(decimal)h(p)s(oin)m(t)f(ma)m(y)
h(b)s(e)e(sp)s(eci\014ed;)i(v)-5 b(alues)630 2132 y(of)31
b Fr(p)h Fu(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42
(to)630 1225 y(a)37 b(time)g(v)-5 b(alue)36 b(or)h(other)f
(information.)59 b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i
(meanings)630 1335 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)
h(optional)h(p)s(ortions.)630 1494 y Ft(\045\045)384
b Fu(A)30 b(literal)i(`)p Ft(\045)p Fu('.)630 1654 y
Ft(\045[)p Fj(p)p Ft(][l]R)96 b Fu(The)30 b(elapsed)h(time)g(in)f
(seconds.)630 1813 y Ft(\045[)p Fj(p)p Ft(][l]U)96 b
Fu(The)30 b(n)m(um)m(b)s(er)f(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g
(user)f(mo)s(de.)630 1973 y Ft(\045[)p Fj(p)p Ft(][l]S)96
b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g
(system)g(mo)s(de.)630 2132 y Ft(\045P)384 b Fu(The)30
b(CPU)g(p)s(ercen)m(tage,)i(computed)e(as)h(\(\045U)f
Ft(+)g Fu(\045S\))g(/)h(\045R.)630 2291 y(The)23 b(optional)j
Fr(p)g Fu(is)e(a)g(digit)h(sp)s(ecifying)e(the)h(precision,)i(the)e(n)m
(um)m(b)s(er)f(of)h(fractional)h(digits)630 2401 y(after)36
b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35 b(v)-5 b(alue)36
b(of)f(0)h(causes)g(no)f(decimal)h(p)s(oin)m(t)f(or)h(fraction)g(to)g
(b)s(e)630 2511 y(output.)48 b(A)m(t)34 b(most)f(three)g(places)h
(after)f(the)g(decimal)h(p)s(oin)m(t)f(ma)m(y)h(b)s(e)e(sp)s
(eci\014ed;)i(v)-5 b(alues)630 2620 y(of)31 b Fr(p)h
Fu(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42
b(If)29 b Fr(p)k Fu(is)d(not)h(sp)s(eci\014ed,)f(the)h(v)-5
b(alue)30 b(3)h(is)g(used.)630 2267 y(The)54 b(optional)h
b(alue)30 b(3)h(is)g(used.)630 2755 y(The)54 b(optional)h
Ft(l)f Fu(sp)s(eci\014es)g(a)h(longer)f(format,)61 b(including)54
b(min)m(utes,)61 b(of)54 b(the)g(form)630 2376 y Fr(MM)10
b(min)m(utes,)61 b(of)54 b(the)g(form)630 2864 y Fr(MM)10
b Fu(m)p Fr(SS)p Fu(.)p Fr(FF)d Fu(s.)103 b(The)50 b(v)-5
b(alue)52 b(of)f Fr(p)j Fu(determines)d(whether)f(or)h(not)h(the)f
(fraction)h(is)630 2486 y(included.)630 2620 y(If)30
(fraction)h(is)630 2974 y(included.)630 3108 y(If)30
b(this)g(v)-5 b(ariable)31 b(is)g(not)f(set,)i(Bash)e(acts)h(as)g(if)f
(it)h(had)f(the)h(v)-5 b(alue)870 2755 y Ft
(it)h(had)f(the)h(v)-5 b(alue)870 3243 y Ft
($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o(sys\\)o(t\0453)o(lS')630
2889 y Fu(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f
3377 y Fu(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f
(information)h(is)f(displa)m(y)m(ed.)62 b(A)37 b(trailing)i(newline)e
(is)630 2999 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m
(y)m(ed.)150 3158 y Ft(TMOUT)240 b Fu(If)22 b(set)h(to)g(a)g(v)-5
(is)630 3487 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m
(y)m(ed.)150 3646 y Ft(TMOUT)240 b Fu(If)22 b(set)h(to)g(a)g(v)-5
b(alue)23 b(greater)h(than)e(zero,)j Ft(TMOUT)d Fu(is)g(treated)i(as)e
(the)h(default)g(timeout)g(for)g(the)630 3268 y Ft(read)31
(the)h(default)g(timeout)g(for)g(the)630 3756 y Ft(read)31
b Fu(builtin)h(\(see)h(Section)f(4.2)i([Bash)e(Builtins],)h(page)g
(51\).)47 b(The)32 b Ft(select)e Fu(command)630 3377
(51\).)47 b(The)32 b Ft(select)e Fu(command)630 3866
y(\(see)f(Section)h(3.2.4.2)g([Conditional)g(Constructs],)e(page)i
(11\))f(terminates)g(if)g(input)e(do)s(es)630 3487 y(not)k(arriv)m(e)g
(11\))f(terminates)g(if)g(input)e(do)s(es)630 3975 y(not)k(arriv)m(e)g
(after)g Ft(TMOUT)e Fu(seconds)h(when)f(input)h(is)g(coming)h(from)f(a)
h(terminal.)630 3621 y(In)40 b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d
h(terminal.)630 4110 y(In)40 b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d
(v)-5 b(alue)41 b(is)g(in)m(terpreted)g(as)f(the)h(n)m(um)m(b)s(er)f
(of)h(seconds)f(to)630 3731 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input)
(of)h(seconds)f(to)630 4219 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input)
e(after)i(issuing)f(the)h(primary)e(prompt.)39 b(Bash)26
b(terminates)h(after)630 3841 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m
b(terminates)h(after)630 4329 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m
(b)s(er)e(of)h(seconds)h(if)f(a)h(complete)h(line)e(of)h(input)e(do)s
(es)h(not)h(arriv)m(e.)150 4000 y Ft(TMPDIR)192 b Fu(If)39
(es)h(not)h(arriv)m(e.)150 4488 y Ft(TMPDIR)192 b Fu(If)39
b(set,)j(Bash)e(uses)f(its)h(v)-5 b(alue)40 b(as)f(the)h(name)f(of)h(a)
g(directory)g(in)f(whic)m(h)g(Bash)h(creates)630 4110
g(directory)g(in)f(whic)m(h)g(Bash)h(creates)630 4598
y(temp)s(orary)30 b(\014les)g(for)g(the)h(shell's)g(use.)150
4269 y Ft(UID)336 b Fu(The)30 b(n)m(umeric)g(real)h(user)f(id)g(of)g
4757 y Ft(UID)336 b Fu(The)30 b(n)m(umeric)g(real)h(user)f(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(.)p eop end
%%Page: 86 92
@@ -21047,185 +21057,188 @@ b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
g(:)g(:)g(:)h(:)f(:)20 b Fb(84)150 1892 y Fe(READLINE_LINE)25
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
b Fb(84)150 1979 y Fe(READLINE_POINT)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(84)150 2066 y Fe(REPLY)9
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(84)150 2153 y
Fe(revert-all-at-newline)17 b Fc(:)h(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)32
b Fb(117)146 2386 y Fs(S)150 2502 y Fe(SECONDS)22 b Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)35 b Fb(84)150 2589 y Fe(SHELL)9 b Fc(:)14
b Fb(84)150 1979 y Fe(READLINE_MARK)25 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(84)150 2066 y
Fe(READLINE_POINT)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)34 b Fb(84)150 2153 y Fe(REPLY)9 b Fc(:)14
b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(84)150 2676 y Fe(SHELLOPTS)15
b Fc(:)h(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)30 b Fb(84)150 2763 y Fe(SHLVL)9 b Fc(:)14
b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(84)150 2851 y Fe(show-all-if-ambiguous)
g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(84)150 2240 y Fe(revert-all-at-newline)
17 b Fc(:)h(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(117)150 2938 y Fe
(show-all-if-unmodified)14 b Fc(:)k(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fb(117)150
3025 y Fe(show-mode-in-prompt)d Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
b Fb(118)2025 260 y Fe(skip-completed-text)26 b Fc(:)13
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(118)2025 347 y Fe(SRANDOM)22
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)f(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(117)146 2473 y Fs(S)150
2589 y Fe(SECONDS)22 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(84)150
2676 y Fe(SHELL)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
b Fb(84)150 2763 y Fe(SHELLOPTS)15 b Fc(:)h(:)d(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30 b Fb(84)150
2851 y Fe(SHLVL)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
b Fb(84)150 2938 y Fe(show-all-if-ambiguous)17 b Fc(:)h(:)13
b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)32 b Fb(117)150 3025 y Fe(show-all-if-unmodified)14
b Fc(:)k(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)29 b Fb(117)150 3112 y Fe(show-mode-in-prompt)d
Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(118)2025 260 y
Fe(skip-completed-text)26 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
b Fb(118)2025 347 y Fe(SRANDOM)22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
b Fb(84)2021 669 y Fs(T)2025 798 y Fe(TEXTDOMAIN)15 b
Fc(:)g(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)30 b Fb(7)2025 889 y Fe(TEXTDOMAINDIR)7 b Fc(:)16
b(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23
b Fb(7)2025 981 y Fe(TIMEFORMAT)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)35 b Fb(84)2021 664 y Fs(T)2025 792
y Fe(TEXTDOMAIN)15 b Fc(:)g(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)30 b Fb(7)2025 883 y Fe(TEXTDOMAINDIR)7
b Fc(:)16 b(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
23 b Fb(7)2025 975 y Fe(TIMEFORMAT)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(85)2025
1066 y Fe(TMOUT)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(85)2025
1072 y Fe(TMOUT)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23
b Fb(85)2025 1153 y Fe(TMPDIR)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
b Fb(85)2025 1159 y Fe(TMPDIR)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
b Fb(85)2021 1470 y Fs(U)2025 1594 y Fe(UID)14 b Fc(:)f(:)g(:)h(:)f(:)g
b Fb(85)2021 1481 y Fs(U)2025 1606 y Fe(UID)14 b Fc(:)f(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)28 b Fb(85)2021 1911 y Fs(V)2025 2040
(:)g(:)h(:)f(:)28 b Fb(85)2021 1928 y Fs(V)2025 2057
y Fe(vi-cmd-mode-string)7 b Fc(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22
b Fb(118)2025 2131 y Fe(vi-ins-mode-string)7 b Fc(:)17
b Fb(118)2025 2148 y Fe(vi-ins-mode-string)7 b Fc(:)17
b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(118)2025 2218
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(118)2025 2235
y Fe(visible-stats)h Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)35 b Fb(118)150 3658 y Fs(D.4)68 b(F)-11 b(unction)44
b(Index)146 4143 y(A)150 4269 y Fe(abort)27 b(\(C-g\))15
f(:)g(:)35 b Fb(118)150 3751 y Fs(D.4)68 b(F)-11 b(unction)44
b(Index)146 4237 y(A)150 4354 y Fe(abort)27 b(\(C-g\))15
b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30
b Fb(132)150 4360 y Fe(accept-line)e(\(Newline)g(or)e(Return\))12
b Fb(132)150 4442 y Fe(accept-line)e(\(Newline)g(or)e(Return\))12
b Fc(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)27
b Fb(126)150 4447 y Fe(alias-expand-line)i(\(\))9 b Fc(:)14
b Fb(126)150 4529 y Fe(alias-expand-line)i(\(\))9 b Fc(:)14
b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(134)146 4761 y Fs(B)150
4887 y Fe(backward-char)29 b(\(C-b\))12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)
(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(134)146 4784 y Fs(B)150
4902 y Fe(backward-char)29 b(\(C-b\))12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)26 b Fb(125)150 4978 y Fe(backward-delete-char)k(\(Rubout\))22
(:)26 b Fb(125)150 4989 y Fe(backward-delete-char)k(\(Rubout\))22
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35
b Fb(128)150 5068 y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))e
b Fb(128)150 5077 y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))e
Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b
Fb(129)150 5159 y Fe(backward-kill-word)30 b(\(M-DEL\))11
Fb(129)150 5165 y Fe(backward-kill-word)30 b(\(M-DEL\))11
b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
26 b Fb(129)150 5249 y Fe(backward-word)j(\(M-b\))12
26 b Fb(129)150 5252 y Fe(backward-word)j(\(M-b\))12
b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(125)150 5340
y Fe(beginning-of-history)k(\(M-<\))11 b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(126)2025
4113 y Fe(beginning-of-line)j(\(C-a\))20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)
4206 y Fe(beginning-of-line)j(\(C-a\))20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34
b Fb(125)2025 4200 y Fe(bracketed-paste-begin)c(\(\))16
b Fb(125)2025 4294 y Fe(bracketed-paste-begin)c(\(\))16
b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)31 b Fb(128)2021 4498 y Fs(C)2025 4622 y Fe
g(:)g(:)31 b Fb(128)2021 4589 y Fs(C)2025 4713 y Fe
(call-last-kbd-macro)f(\(C-x)c(e\))15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)30 b Fb(132)2025 4712
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)30 b Fb(132)2025 4802
y Fe(capitalize-word)f(\(M-c\))7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22
b Fb(128)2025 4802 y Fe(character-search)29 b(\(C-]\))22
b Fb(128)2025 4892 y Fe(character-search)29 b(\(C-]\))22
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)36 b Fb(133)2025 4891 y Fe
(:)h(:)f(:)g(:)g(:)36 b Fb(133)2025 4982 y Fe
(character-search-backward)31 b(\(M-C-]\))10 b Fc(:)15
b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)25 b Fb(133)2025 4981
b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)25 b Fb(133)2025 5071
y Fe(clear-screen)j(\(C-l\))14 b Fc(:)h(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29
b Fb(126)2025 5071 y Fe(complete)e(\(TAB\))7 b Fc(:)15
b Fb(126)2025 5161 y Fe(complete)e(\(TAB\))7 b Fc(:)15
b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)22
b Fb(130)2025 5161 y Fe(complete-command)29 b(\(M-!\))22
b Fb(130)2025 5250 y Fe(complete-command)29 b(\(M-!\))22
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)36 b Fb(131)2025 5250 y Fe(complete-filename)29
(:)h(:)f(:)g(:)g(:)36 b Fb(131)2025 5340 y Fe(complete-filename)29
b(\(M-/\))20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(131)2025 5340 y Fe
(complete-hostname)29 b(\(M-@\))20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34
b Fb(131)p eop end
f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(131)p eop end
%%Page: 178 184
TeXDict begin 178 183 bop 150 -116 a Fu(App)s(endix)29
b(D:)i(Indexes)2623 b(178)150 264 y Fe(complete-into-braces)30
b(\(M-{\))11 b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)26 b Fb(132)150 354 y Fe(complete-username)j(\(M-~\))20
b(D:)i(Indexes)2623 b(178)150 264 y Fe(complete-hostname)29
b(\(M-@\))20 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(131)150 353 y Fe
(complete-into-braces)d(\(M-{\))11 b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(132)150 443
y Fe(complete-username)j(\(M-~\))20 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33
b Fb(131)150 533 y Fe(complete-variable)c(\(M-$\))20
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)33 b Fb(131)150 444 y Fe(complete-variable)c(\(M-$\))20
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)33 b Fb(131)150 534 y Fe(copy-backward-word)d(\(\))7
(:)g(:)h(:)f(:)33 b Fb(131)150 622 y Fe(copy-backward-word)d(\(\))7
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(130)150 624 y Fe(copy-forward-word)
(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(130)150 712 y Fe(copy-forward-word)
29 b(\(\))9 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(130)150
711 y Fe(copy-region-as-kill)30 b(\(\))22 b Fc(:)13 b(:)g(:)g(:)g(:)g
799 y Fe(copy-region-as-kill)30 b(\(\))22 b Fc(:)13 b(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
b Fb(130)146 1017 y Fs(D)150 1142 y Fe(dabbrev-expand)29
b Fb(130)146 1096 y Fs(D)150 1220 y Fe(dabbrev-expand)29
b(\(\))17 b Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
b Fb(132)150 1232 y Fe(delete-char)c(\(C-d\))17 b Fc(:)d(:)f(:)g(:)h(:)
b Fb(132)150 1310 y Fe(delete-char)c(\(C-d\))17 b Fc(:)d(:)f(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)32 b Fb(127)150 1322 y Fe(delete-char-or-list)e
(:)g(:)g(:)g(:)g(:)32 b Fb(127)150 1399 y Fe(delete-char-or-list)e
(\(\))22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(131)150 1412 y Fe
g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(131)150 1489 y Fe
(delete-horizontal-space)31 b(\(\))11 b Fc(:)i(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(129)150
1502 y Fe(digit-argument)j(\()p Fd(M-0)p Fe(,)e Fd(M-1)p
1579 y Fe(digit-argument)j(\()p Fd(M-0)p Fe(,)e Fd(M-1)p
Fe(,)f(...)g Fd(M--)p Fe(\))11 b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)
26 b Fb(130)150 1592 y Fe(display-shell-version)k(\(C-x)d(C-v\))c
26 b Fb(130)150 1668 y Fe(display-shell-version)k(\(C-x)d(C-v\))c
Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b
Fb(134)150 1673 y Fe(do-lowercase-version)30 b(\(M-A,)227
1761 y(M-B,)c(M-)p Fd(x)p Fe(,)h(...\))10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g
Fb(134)150 1749 y Fe(do-lowercase-version)30 b(\(M-A,)227
1837 y(M-B,)c(M-)p Fd(x)p Fe(,)h(...\))10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)25 b Fb(132)150 1851 y Fe(downcase-word)k(\(M-l\))
g(:)g(:)g(:)g(:)g(:)25 b Fb(132)150 1926 y Fe(downcase-word)k(\(M-l\))
12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(128)150 1941
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(128)150 2016
y Fe(dump-functions)j(\(\))17 b Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
32 b Fb(133)150 2031 y Fe(dump-macros)c(\(\))7 b Fc(:)14
32 b Fb(133)150 2106 y Fe(dump-macros)c(\(\))7 b Fc(:)14
b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
b Fb(134)150 2121 y Fe(dump-variables)29 b(\(\))17 b
b Fb(134)150 2195 y Fe(dump-variables)29 b(\(\))17 b
Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(133)150
2208 y Fe(dynamic-complete-history)f(\(M-TAB\))13 b Fc(:)i(:)e(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(132)146 2514 y Fs(E)150
2639 y Fe(edit-and-execute-command)k(\(C-x)c(C-e\))14
b Fc(:)g(:)f(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(134)150 2729
2282 y Fe(dynamic-complete-history)f(\(M-TAB\))13 b Fc(:)i(:)e(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(132)146 2580 y Fs(E)150
2703 y Fe(edit-and-execute-command)k(\(C-x)c(C-e\))14
b Fc(:)g(:)f(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(134)150 2793
y Fe(end-kbd-macro)g(\(C-x)d(\)\))13 b Fc(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)28
b Fb(132)150 2819 y Fd(end-of-file)g Fe(\(usually)g(C-d\))21
b Fb(132)150 2883 y Fd(end-of-file)g Fe(\(usually)g(C-d\))21
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)35 b Fb(127)150 2909 y Fe(end-of-history)29 b(\(M->\))9
(:)g(:)35 b Fb(127)150 2972 y Fe(end-of-history)29 b(\(M->\))9
b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(126)150 2999 y
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(126)150 3062 y
Fe(end-of-line)k(\(C-e\))17 b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
b Fb(125)150 3086 y Fe(exchange-point-and-mark)f(\(C-x)26
b Fb(125)150 3149 y Fe(exchange-point-and-mark)f(\(C-x)26
b(C-x\))17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)32
b Fb(133)146 3392 y Fs(F)150 3517 y Fe(forward-backward-delete-char)g
b Fb(133)146 3446 y Fs(F)150 3570 y Fe(forward-backward-delete-char)g
(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30
b Fb(128)150 3607 y Fe(forward-char)e(\(C-f\))14 b Fc(:)h(:)e(:)g(:)g
b Fb(128)150 3660 y Fe(forward-char)e(\(C-f\))14 b Fc(:)h(:)e(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)29 b Fb(125)150 3697 y Fe(forward-search-history)i
h(:)f(:)g(:)g(:)29 b Fb(125)150 3749 y Fe(forward-search-history)i
(\(C-s\))24 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)38 b Fb(126)150 3784 y Fe(forward-word)28 b(\(M-f\))14
(:)38 b Fb(126)150 3837 y Fe(forward-word)28 b(\(M-f\))14
b Fc(:)h(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fb(125)146 4079
y Fs(G)150 4204 y Fe(glob-complete-word)h(\(M-g\))16
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fb(125)146 4123
y Fs(G)150 4247 y Fe(glob-complete-word)h(\(M-g\))16
b Fc(:)e(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)31 b Fb(134)150 4294 y Fe(glob-expand-word)e(\(C-x)e(*\))c
g(:)g(:)31 b Fb(134)150 4337 y Fe(glob-expand-word)e(\(C-x)e(*\))c
Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)38 b Fb(134)150 4382 y Fe(glob-list-expansions)30
(:)g(:)g(:)38 b Fb(134)150 4424 y Fe(glob-list-expansions)30
b(\(C-x)d(g\))13 b Fc(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)27 b Fb(134)2021 294 y Fs(H)2025 422 y Fe
(history-and-alias-expand-line)32 b(\(\))13 b Fc(:)g(:)g(:)h(:)f(:)g(:)
+13 -5
View File
@@ -4063,11 +4063,12 @@ Cause @var{shell-command} to be executed whenever @var{keyseq} is
entered.
When @var{shell-command} is executed, the shell sets the
@code{READLINE_LINE} variable to the contents of the Readline line
buffer and the @code{READLINE_POINT} variable to the current location
of the insertion point.
If the executed command changes the value of @code{READLINE_LINE} or
@code{READLINE_POINT}, those new values will be reflected in the
editing state.
buffer and the @code{READLINE_POINT} and @code{READLINE_MARK} variables
to the current location of the insertion point and the saved insertion
point (the @var{mark}), respectively.
If the executed command changes the value of any of @code{READLINE_LINE},
@code{READLINE_POINT}, or @code{READLINE_MARK}, those new values will be
reflected in the editing state.
@item -X
List all key sequences bound to shell commands and the associated commands
@@ -6308,6 +6309,13 @@ subsequently reset.
The contents of the Readline line buffer, for use
with @samp{bind -x} (@pxref{Bash Builtins}).
@item READLINE_MARK
The position of the @var{mark} (saved insertion point) in the
Readline line buffer, for use
with @samp{bind -x} (@pxref{Bash Builtins}).
The characters between the insertion point and the mark are often
called the @var{region}.
@item READLINE_POINT
The position of the insertion point in the Readline line buffer, for use
with @samp{bind -x} (@pxref{Bash Builtins}).
+1
View File
@@ -113,6 +113,7 @@
\entry{PWD}{84}{\code {PWD}}
\entry{RANDOM}{84}{\code {RANDOM}}
\entry{READLINE_LINE}{84}{\code {READLINE_LINE}}
\entry{READLINE_MARK}{84}{\code {READLINE_MARK}}
\entry{READLINE_POINT}{84}{\code {READLINE_POINT}}
\entry{REPLY}{84}{\code {REPLY}}
\entry{SECONDS}{84}{\code {SECONDS}}
+1
View File
@@ -167,6 +167,7 @@
\initial {R}
\entry{\code {RANDOM}}{84}
\entry{\code {READLINE_LINE}}{84}
\entry{\code {READLINE_MARK}}{84}
\entry{\code {READLINE_POINT}}{84}
\entry{\code {REPLY}}{84}
\entry{\code {revert-all-at-newline}}{117}
+838 -837
View File
File diff suppressed because it is too large Load Diff
+1963 -1955
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.4
%%CreationDate: Mon Jan 6 08:53:35 2020
%%CreationDate: Wed Jan 29 14:04:11 2020
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.22 4
+4 -4
View File
@@ -1,11 +1,11 @@
@ignore
Copyright (C) 1988-2019 Free Software Foundation, Inc.
Copyright (C) 1988-2020 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Tue Nov 26 11:14:58 EST 2019
@set LASTCHANGE Wed Jan 29 13:59:06 EST 2020
@set EDITION 5.0
@set VERSION 5.0
@set UPDATED 26 November 2019
@set UPDATED-MONTH November 2019
@set UPDATED 29 January 2020
@set UPDATED-MONTH January 2020
+5 -1
View File
@@ -103,7 +103,7 @@ INC = -I. -I.. -I$(topdir) -I$(topdir)/lib -I$(topdir)/builtins -I${srcdir} \
ALLPROG = print truefalse sleep finfo logname basename dirname fdflags \
tty pathchk tee head mkdir rmdir mktemp printenv id whoami \
uname sync push ln unlink realpath strftime mypid setpgid seq rm
OTHERPROG = necho hello cat pushd stat
OTHERPROG = necho hello cat pushd stat accept
all: $(SHOBJ_STATUS)
@@ -133,6 +133,9 @@ hello: hello.o
truefalse: truefalse.o
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ truefalse.o $(SHOBJ_LIBS)
accept: accept.o
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ accept.o $(SHOBJ_LIBS)
sleep: sleep.o
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ sleep.o $(SHOBJ_LIBS)
@@ -275,6 +278,7 @@ uninstall: uninstall-$(SHOBJ_STATUS)
print.o: print.c
truefalse.o: truefalse.c
accept.o: accept.c
sleep.o: sleep.c
finfo.o: finfo.c
logname.o: logname.c
+234
View File
@@ -0,0 +1,234 @@
/* accept - listen for and accept a remote network connection on a given port */
/*
Copyright (C) 2020 Free Software Foundation, Inc.
This file is part of GNU Bash.
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 <config.h>
#if defined (HAVE_UNISTD_H)
# include <unistd.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "bashtypes.h"
#include <errno.h>
#include <time.h>
#include "typemax.h"
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include "loadables.h"
static int accept_bind_variable (char *, int);
int
accept_builtin (list)
WORD_LIST *list;
{
WORD_LIST *l;
SHELL_VAR *v;
intmax_t iport;
int opt;
char *tmoutarg, *fdvar, *rhostvar, *rhost;
unsigned short uport;
int servsock, clisock;
struct sockaddr_in server, client;
socklen_t clientlen;
struct timeval timeval;
struct linger linger = { 0, 0 };
rhostvar = tmoutarg = fdvar = rhost = (char *)NULL;
reset_internal_getopt ();
while ((opt = internal_getopt (list, "r:t:v:")) != -1)
{
switch (opt)
{
case 'r':
rhostvar = list_optarg;
break;
case 't':
tmoutarg = list_optarg;
break;
case 'v':
fdvar = list_optarg;
break;
CASE_HELPOPT;
default:
builtin_usage ();
return (EX_USAGE);
}
}
list = loptend;
/* Validate input and variables */
if (tmoutarg)
{
long ival, uval;
opt = uconvert (tmoutarg, &ival, &uval);
if (opt == 0 || ival < 0 || uval < 0)
{
builtin_error ("%s: invalid timeout specification", tmoutarg);
return (EXECUTION_FAILURE);
}
timeval.tv_sec = ival;
timeval.tv_usec = uval;
/* XXX - should we warn if ival == uval == 0 ? */
}
if (list == 0)
{
builtin_usage ();
return (EX_USAGE);
}
if (legal_number (list->word->word, &iport) == 0 || iport < 0 || iport > TYPE_MAXIMUM (unsigned short))
{
builtin_error ("%s: invalid port number", list->word->word);
return (EXECUTION_FAILURE);
}
uport = (unsigned short)iport;
if (fdvar == 0)
fdvar = "ACCEPT_FD";
unbind_variable (fdvar);
if (rhostvar)
unbind_variable (rhostvar);
if ((servsock = socket (AF_INET, SOCK_STREAM, IPPROTO_IP)) < 0)
{
builtin_error ("cannot create socket: %s", strerror (errno));
return (EXECUTION_FAILURE);
}
memset ((char *)&server, 0, sizeof (server));
server.sin_family = AF_INET;
server.sin_port = htons(uport);
server.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind (servsock, (struct sockaddr *)&server, sizeof (server)) < 0)
{
builtin_error ("socket bind failure: %s", strerror (errno));
close (servsock);
return (EXECUTION_FAILURE);
}
opt = 1;
setsockopt (servsock, SOL_SOCKET, SO_REUSEADDR, (void *)&opt, sizeof (opt));
setsockopt (servsock, SOL_SOCKET, SO_LINGER, (void *)&linger, sizeof (linger));
if (listen (servsock, 1) < 0)
{
builtin_error ("listen failure: %s", strerror (errno));
close (servsock);
return (EXECUTION_FAILURE);
}
if (tmoutarg)
{
fd_set iofds;
FD_ZERO(&iofds);
FD_SET(servsock, &iofds);
opt = select (servsock+1, &iofds, 0, 0, &timeval);
if (opt < 0)
builtin_error ("select failure: %s", strerror (errno));
if (opt <= 0)
{
close (servsock);
return (EXECUTION_FAILURE);
}
}
clientlen = sizeof (client);
if ((clisock = accept (servsock, (struct sockaddr *)&client, &clientlen)) < 0)
{
builtin_error ("client accept failure: %s", strerror (errno));
close (servsock);
return (EXECUTION_FAILURE);
}
close (servsock);
accept_bind_variable (fdvar, clisock);
if (rhostvar)
{
rhost = inet_ntoa (client.sin_addr);
v = builtin_bind_variable (rhostvar, rhost, 0);
if (v == 0 || readonly_p (v) || noassign_p (v))
builtin_error ("%s: cannot set variable", rhostvar);
}
return (EXECUTION_SUCCESS);
}
static int
accept_bind_variable (varname, intval)
char *varname;
int intval;
{
SHELL_VAR *v;
char ibuf[INT_STRLEN_BOUND (int) + 1], *p;
p = fmtulong (intval, 10, ibuf, sizeof (ibuf), 0);
v = builtin_bind_variable (varname, p, 0);
if (v == 0 || readonly_p (v) || noassign_p (v))
builtin_error ("%s: cannot set variable", varname);
return (v != 0);
}
char *accept_doc[] = {
"Accept a network connection on a specified port.",
""
"This builtin allows a bash script to act as a TCP/IP server.",
"",
"Options, if supplied, have the following meanings:",
" -t timeout wait TIMEOUT seconds for a connection. TIMEOUT may",
" be a decimal number including a fractional portion",
" -v varname store the numeric file descriptor of the connected",
" socket into VARNAME. The default VARNAME is ACCEPT_FD",
" -r rhost store the IP address of the remote host into the shell",
" variable RHOST, in dotted-decimal notation",
"",
"If successful, the shell variable ACCEPT_FD, or the variable named by the",
"-v option, will be set to the fd of the connected socket, suitable for",
"use as 'read -u$ACCEPT_FD'. RHOST, if supplied, will hold the IP address",
"of the remote client. The return status is 0.",
"",
"On failure, the return status is 1 and ACCEPT_FD (or VARNAME) and RHOST,",
"if supplied, will be unset.",
"",
"The server socket fd will be closed before accept returns.",
(char *) NULL
};
struct builtin accept_struct = {
"accept", /* builtin name */
accept_builtin, /* function implementing the builtin */
BUILTIN_ENABLED, /* initial flags for builtin */
accept_doc, /* array of long documentation strings. */
"accept [-t timeout] [-v varname] [-r addrvar ] port", /* usage synopsis; becomes short_doc */
0 /* reserved for internal use */
};
+2
View File
@@ -640,6 +640,7 @@ history_truncate_file (const char *fname, int lines)
if (rv != 0)
{
rv = errno;
if (tempname)
unlink (tempname);
history_lines_written_to_file = 0;
@@ -787,6 +788,7 @@ mmap_error:
if (rv != 0)
{
rv = errno;
if (tempname)
unlink (tempname);
history_lines_written_to_file = 0;
+1
View File
@@ -954,6 +954,7 @@ void
run_trap_cleanup (sig)
int sig;
{
/* XXX - should we clean up trap_list[sig] == IMPOSSIBLE_TRAP_HANDLER? */
sigmodes[sig] &= ~(SIG_INPROGRESS|SIG_CHANGED);
}