portability and compatibility fixes

This commit is contained in:
Chet Ramey
2021-12-06 09:17:41 -05:00
parent 006856edf6
commit 71a11dbeb4
15 changed files with 513 additions and 313 deletions
+162 -140
View File
@@ -1,9 +1,9 @@
This is bash.info, produced by makeinfo version 6.8 from bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 22 November 2021).
Bash shell (version 5.2, 2 December 2021).
This is Edition 5.2, last updated 22 November 2021, of 'The GNU Bash
This is Edition 5.2, last updated 2 December 2021, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Copyright (C) 1988-2021 Free Software Foundation, Inc.
@@ -26,10 +26,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 22 November 2021). The Bash home page is
Bash shell (version 5.2, 2 December 2021). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.2, last updated 22 November 2021, of 'The GNU Bash
This is Edition 5.2, last updated 2 December 2021, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Bash contains features that appear in other popular shells, and some
@@ -7349,10 +7349,28 @@ required for bash-5.1 and later versions.
suppresses that message when the '-l' option is supplied.
'compat51 (set using BASH_COMPAT)'
* The 'unset' builtin treats attempts to unset array subscripts
'@' and '*' differently depending on whether the array is
indexed or associative, and differently than in previous
versions.
* The 'unset' builtin will unset the array 'a' given an argument
like 'a[@]'. Bash-5.2 will unset an element with key '@'
(associative arrays) or remove all the elements without
unsetting the array (indexed arrays)
* arithmetic commands ( ((...)) ) and the expressions in an
arithmetic for statement can be expanded more than once
* expressions used as arguments to arithmetic operators in the
'[[' conditional command can be expanded more than once
* the expressions in substring parameter brace expansion can be
expanded more than once
* the expressions in the $(( ... )) word expansion can be
expanded more than once
* arithmetic expressions used as indexed array subscripts can be
expanded more than once
* 'test -v', when given an argument of 'A[@]', where A is an
existing associative array, will return true if the array has
any set elements. Bash-5.2 will look for and report on a key
named '@'
* the ${PARAMETER[:]=VALUE} word expansion will return VALUE,
before any variable-specific transformations have been
performed (e.g., converting to lowercase). Bash-5.2 will
return the final value assigned to the variable.

File: bash.info, Node: Job Control, Next: Command Line Editing, Prev: Bash Features, Up: Top
@@ -10719,6 +10737,10 @@ does not provide the necessary support.
'--enable-strict-posix-default'
Make Bash POSIX-conformant by default (*note Bash POSIX Mode::).
'--enable-translatable-strings'
Enable support for '$"STRING"' translatable strings (*note Locale
Translation::).
'--enable-usg-echo-default'
A synonym for '--enable-xpg-echo-default'.
@@ -12392,138 +12414,138 @@ D.5 Concept Index

Tag Table:
Node: Top894
Node: Introduction2811
Node: What is Bash?3024
Node: What is a shell?4135
Node: Definitions6670
Node: Basic Shell Features9618
Node: Shell Syntax10834
Node: Shell Operation11857
Node: Quoting13147
Node: Escape Character14448
Node: Single Quotes14930
Node: Double Quotes15275
Node: ANSI-C Quoting16550
Node: Locale Translation17857
Node: Creating Internationalized Scripts19165
Node: Comments23279
Node: Shell Commands23894
Node: Reserved Words24829
Node: Simple Commands25582
Node: Pipelines26233
Node: Lists29189
Node: Compound Commands30981
Node: Looping Constructs31990
Node: Conditional Constructs34482
Node: Command Grouping48823
Node: Coprocesses50298
Node: GNU Parallel52958
Node: Shell Functions53872
Node: Shell Parameters61160
Node: Positional Parameters65545
Node: Special Parameters66444
Node: Shell Expansions69655
Node: Brace Expansion71779
Node: Tilde Expansion74510
Node: Shell Parameter Expansion77128
Node: Command Substitution94991
Node: Arithmetic Expansion96343
Node: Process Substitution97308
Node: Word Splitting98425
Node: Filename Expansion100366
Node: Pattern Matching102963
Node: Quote Removal107568
Node: Redirections107860
Node: Executing Commands117517
Node: Simple Command Expansion118184
Node: Command Search and Execution120291
Node: Command Execution Environment122666
Node: Environment125698
Node: Exit Status127358
Node: Signals129139
Node: Shell Scripts132585
Node: Shell Builtin Commands135609
Node: Bourne Shell Builtins137644
Node: Bash Builtins159102
Node: Modifying Shell Behavior189955
Node: The Set Builtin190297
Node: The Shopt Builtin200836
Node: Special Builtins216547
Node: Shell Variables217523
Node: Bourne Shell Variables217957
Node: Bash Variables220058
Node: Bash Features252870
Node: Invoking Bash253880
Node: Bash Startup Files259890
Node: Interactive Shells264990
Node: What is an Interactive Shell?265397
Node: Is this Shell Interactive?266043
Node: Interactive Shell Behavior266855
Node: Bash Conditional Expressions270481
Node: Shell Arithmetic275120
Node: Aliases278061
Node: Arrays280671
Node: The Directory Stack286915
Node: Directory Stack Builtins287696
Node: Controlling the Prompt291953
Node: The Restricted Shell294915
Node: Bash POSIX Mode297522
Node: Shell Compatibility Mode308792
Node: Job Control315708
Node: Job Control Basics316165
Node: Job Control Builtins321164
Node: Job Control Variables326561
Node: Command Line Editing327714
Node: Introduction and Notation329382
Node: Readline Interaction331002
Node: Readline Bare Essentials332190
Node: Readline Movement Commands333970
Node: Readline Killing Commands334927
Node: Readline Arguments336842
Node: Searching337883
Node: Readline Init File340066
Node: Readline Init File Syntax341324
Node: Conditional Init Constructs362809
Node: Sample Init File367002
Node: Bindable Readline Commands370123
Node: Commands For Moving371324
Node: Commands For History373372
Node: Commands For Text378363
Node: Commands For Killing382009
Node: Numeric Arguments385039
Node: Commands For Completion386175
Node: Keyboard Macros390363
Node: Miscellaneous Commands391047
Node: Readline vi Mode396983
Node: Programmable Completion397887
Node: Programmable Completion Builtins405664
Node: A Programmable Completion Example416356
Node: Using History Interactively421600
Node: Bash History Facilities422281
Node: Bash History Builtins425283
Node: History Interaction430288
Node: Event Designators433905
Node: Word Designators435256
Node: Modifiers437013
Node: Installing Bash438821
Node: Basic Installation439955
Node: Compilers and Options443674
Node: Compiling For Multiple Architectures444412
Node: Installation Names446102
Node: Specifying the System Type448208
Node: Sharing Defaults448921
Node: Operation Controls449591
Node: Optional Features450546
Node: Reporting Bugs461636
Node: Major Differences From The Bourne Shell462908
Node: GNU Free Documentation License479755
Node: Indexes504929
Node: Builtin Index505380
Node: Reserved Word Index512204
Node: Variable Index514649
Node: Function Index531138
Node: Concept Index544919
Node: Top892
Node: Introduction2807
Node: What is Bash?3020
Node: What is a shell?4131
Node: Definitions6666
Node: Basic Shell Features9614
Node: Shell Syntax10830
Node: Shell Operation11853
Node: Quoting13143
Node: Escape Character14444
Node: Single Quotes14926
Node: Double Quotes15271
Node: ANSI-C Quoting16546
Node: Locale Translation17853
Node: Creating Internationalized Scripts19161
Node: Comments23275
Node: Shell Commands23890
Node: Reserved Words24825
Node: Simple Commands25578
Node: Pipelines26229
Node: Lists29185
Node: Compound Commands30977
Node: Looping Constructs31986
Node: Conditional Constructs34478
Node: Command Grouping48819
Node: Coprocesses50294
Node: GNU Parallel52954
Node: Shell Functions53868
Node: Shell Parameters61156
Node: Positional Parameters65541
Node: Special Parameters66440
Node: Shell Expansions69651
Node: Brace Expansion71775
Node: Tilde Expansion74506
Node: Shell Parameter Expansion77124
Node: Command Substitution94987
Node: Arithmetic Expansion96339
Node: Process Substitution97304
Node: Word Splitting98421
Node: Filename Expansion100362
Node: Pattern Matching102959
Node: Quote Removal107564
Node: Redirections107856
Node: Executing Commands117513
Node: Simple Command Expansion118180
Node: Command Search and Execution120287
Node: Command Execution Environment122662
Node: Environment125694
Node: Exit Status127354
Node: Signals129135
Node: Shell Scripts132581
Node: Shell Builtin Commands135605
Node: Bourne Shell Builtins137640
Node: Bash Builtins159098
Node: Modifying Shell Behavior189951
Node: The Set Builtin190293
Node: The Shopt Builtin200832
Node: Special Builtins216543
Node: Shell Variables217519
Node: Bourne Shell Variables217953
Node: Bash Variables220054
Node: Bash Features252866
Node: Invoking Bash253876
Node: Bash Startup Files259886
Node: Interactive Shells264986
Node: What is an Interactive Shell?265393
Node: Is this Shell Interactive?266039
Node: Interactive Shell Behavior266851
Node: Bash Conditional Expressions270477
Node: Shell Arithmetic275116
Node: Aliases278057
Node: Arrays280667
Node: The Directory Stack286911
Node: Directory Stack Builtins287692
Node: Controlling the Prompt291949
Node: The Restricted Shell294911
Node: Bash POSIX Mode297518
Node: Shell Compatibility Mode308788
Node: Job Control316814
Node: Job Control Basics317271
Node: Job Control Builtins322270
Node: Job Control Variables327667
Node: Command Line Editing328820
Node: Introduction and Notation330488
Node: Readline Interaction332108
Node: Readline Bare Essentials333296
Node: Readline Movement Commands335076
Node: Readline Killing Commands336033
Node: Readline Arguments337948
Node: Searching338989
Node: Readline Init File341172
Node: Readline Init File Syntax342430
Node: Conditional Init Constructs363915
Node: Sample Init File368108
Node: Bindable Readline Commands371229
Node: Commands For Moving372430
Node: Commands For History374478
Node: Commands For Text379469
Node: Commands For Killing383115
Node: Numeric Arguments386145
Node: Commands For Completion387281
Node: Keyboard Macros391469
Node: Miscellaneous Commands392153
Node: Readline vi Mode398089
Node: Programmable Completion398993
Node: Programmable Completion Builtins406770
Node: A Programmable Completion Example417462
Node: Using History Interactively422706
Node: Bash History Facilities423387
Node: Bash History Builtins426389
Node: History Interaction431394
Node: Event Designators435011
Node: Word Designators436362
Node: Modifiers438119
Node: Installing Bash439927
Node: Basic Installation441061
Node: Compilers and Options444780
Node: Compiling For Multiple Architectures445518
Node: Installation Names447208
Node: Specifying the System Type449314
Node: Sharing Defaults450027
Node: Operation Controls450697
Node: Optional Features451652
Node: Reporting Bugs462867
Node: Major Differences From The Bourne Shell464139
Node: GNU Free Documentation License480986
Node: Indexes506160
Node: Builtin Index506611
Node: Reserved Word Index513435
Node: Variable Index515880
Node: Function Index532369
Node: Concept Index546150

End Tag Table
+158 -140
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.8 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 22 November 2021).
Bash shell (version 5.2, 2 December 2021).
This is Edition 5.2, last updated 22 November 2021, of 'The GNU Bash
This is Edition 5.2, last updated 2 December 2021, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Copyright (C) 1988-2021 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.2, 22 November 2021). The Bash home page is
Bash shell (version 5.2, 2 December 2021). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.2, last updated 22 November 2021, of 'The GNU Bash
This is Edition 5.2, last updated 2 December 2021, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Bash contains features that appear in other popular shells, and some
@@ -7350,10 +7350,28 @@ required for bash-5.1 and later versions.
suppresses that message when the '-l' option is supplied.
'compat51 (set using BASH_COMPAT)'
* The 'unset' builtin treats attempts to unset array subscripts
'@' and '*' differently depending on whether the array is
indexed or associative, and differently than in previous
versions.
* The 'unset' builtin will unset the array 'a' given an argument
like 'a[@]'. Bash-5.2 will unset an element with key '@'
(associative arrays) or remove all the elements without
unsetting the array (indexed arrays)
* arithmetic commands ( ((...)) ) and the expressions in an
arithmetic for statement can be expanded more than once
* expressions used as arguments to arithmetic operators in the
'[[' conditional command can be expanded more than once
* the expressions in substring parameter brace expansion can be
expanded more than once
* the expressions in the $(( ... )) word expansion can be
expanded more than once
* arithmetic expressions used as indexed array subscripts can be
expanded more than once
* 'test -v', when given an argument of 'A[@]', where A is an
existing associative array, will return true if the array has
any set elements. Bash-5.2 will look for and report on a key
named '@'
* the ${PARAMETER[:]=VALUE} word expansion will return VALUE,
before any variable-specific transformations have been
performed (e.g., converting to lowercase). Bash-5.2 will
return the final value assigned to the variable.

File: bashref.info, Node: Job Control, Next: Command Line Editing, Prev: Bash Features, Up: Top
@@ -12397,138 +12415,138 @@ 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 Character14478
Node: Single Quotes14963
Node: Double Quotes15311
Node: ANSI-C Quoting16589
Node: Locale Translation17899
Node: Creating Internationalized Scripts19210
Node: Comments23327
Node: Shell Commands23945
Node: Reserved Words24883
Node: Simple Commands25639
Node: Pipelines26293
Node: Lists29252
Node: Compound Commands31047
Node: Looping Constructs32059
Node: Conditional Constructs34554
Node: Command Grouping48898
Node: Coprocesses50376
Node: GNU Parallel53039
Node: Shell Functions53956
Node: Shell Parameters61247
Node: Positional Parameters65635
Node: Special Parameters66537
Node: Shell Expansions69751
Node: Brace Expansion71878
Node: Tilde Expansion74612
Node: Shell Parameter Expansion77233
Node: Command Substitution95099
Node: Arithmetic Expansion96454
Node: Process Substitution97422
Node: Word Splitting98542
Node: Filename Expansion100486
Node: Pattern Matching103086
Node: Quote Removal107694
Node: Redirections107989
Node: Executing Commands117649
Node: Simple Command Expansion118319
Node: Command Search and Execution120429
Node: Command Execution Environment122807
Node: Environment125842
Node: Exit Status127505
Node: Signals129289
Node: Shell Scripts132738
Node: Shell Builtin Commands135765
Node: Bourne Shell Builtins137803
Node: Bash Builtins159264
Node: Modifying Shell Behavior190120
Node: The Set Builtin190465
Node: The Shopt Builtin201007
Node: Special Builtins216721
Node: Shell Variables217700
Node: Bourne Shell Variables218137
Node: Bash Variables220241
Node: Bash Features253056
Node: Invoking Bash254069
Node: Bash Startup Files260082
Node: Interactive Shells265185
Node: What is an Interactive Shell?265595
Node: Is this Shell Interactive?266244
Node: Interactive Shell Behavior267059
Node: Bash Conditional Expressions270688
Node: Shell Arithmetic275330
Node: Aliases278274
Node: Arrays280887
Node: The Directory Stack287134
Node: Directory Stack Builtins287918
Node: Controlling the Prompt292178
Node: The Restricted Shell295143
Node: Bash POSIX Mode297753
Node: Shell Compatibility Mode309026
Node: Job Control315945
Node: Job Control Basics316405
Node: Job Control Builtins321407
Node: Job Control Variables326807
Node: Command Line Editing327963
Node: Introduction and Notation329634
Node: Readline Interaction331257
Node: Readline Bare Essentials332448
Node: Readline Movement Commands334231
Node: Readline Killing Commands335191
Node: Readline Arguments337109
Node: Searching338153
Node: Readline Init File340339
Node: Readline Init File Syntax341600
Node: Conditional Init Constructs363088
Node: Sample Init File367284
Node: Bindable Readline Commands370408
Node: Commands For Moving371612
Node: Commands For History373663
Node: Commands For Text378657
Node: Commands For Killing382306
Node: Numeric Arguments385339
Node: Commands For Completion386478
Node: Keyboard Macros390669
Node: Miscellaneous Commands391356
Node: Readline vi Mode397295
Node: Programmable Completion398202
Node: Programmable Completion Builtins405982
Node: A Programmable Completion Example416677
Node: Using History Interactively421924
Node: Bash History Facilities422608
Node: Bash History Builtins425613
Node: History Interaction430621
Node: Event Designators434241
Node: Word Designators435595
Node: Modifiers437355
Node: Installing Bash439166
Node: Basic Installation440303
Node: Compilers and Options444025
Node: Compiling For Multiple Architectures444766
Node: Installation Names446459
Node: Specifying the System Type448568
Node: Sharing Defaults449284
Node: Operation Controls449957
Node: Optional Features450915
Node: Reporting Bugs462133
Node: Major Differences From The Bourne Shell463408
Node: GNU Free Documentation License480258
Node: Indexes505435
Node: Builtin Index505889
Node: Reserved Word Index512716
Node: Variable Index515164
Node: Function Index531656
Node: Concept Index545440
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 Character14474
Node: Single Quotes14959
Node: Double Quotes15307
Node: ANSI-C Quoting16585
Node: Locale Translation17895
Node: Creating Internationalized Scripts19206
Node: Comments23323
Node: Shell Commands23941
Node: Reserved Words24879
Node: Simple Commands25635
Node: Pipelines26289
Node: Lists29248
Node: Compound Commands31043
Node: Looping Constructs32055
Node: Conditional Constructs34550
Node: Command Grouping48894
Node: Coprocesses50372
Node: GNU Parallel53035
Node: Shell Functions53952
Node: Shell Parameters61243
Node: Positional Parameters65631
Node: Special Parameters66533
Node: Shell Expansions69747
Node: Brace Expansion71874
Node: Tilde Expansion74608
Node: Shell Parameter Expansion77229
Node: Command Substitution95095
Node: Arithmetic Expansion96450
Node: Process Substitution97418
Node: Word Splitting98538
Node: Filename Expansion100482
Node: Pattern Matching103082
Node: Quote Removal107690
Node: Redirections107985
Node: Executing Commands117645
Node: Simple Command Expansion118315
Node: Command Search and Execution120425
Node: Command Execution Environment122803
Node: Environment125838
Node: Exit Status127501
Node: Signals129285
Node: Shell Scripts132734
Node: Shell Builtin Commands135761
Node: Bourne Shell Builtins137799
Node: Bash Builtins159260
Node: Modifying Shell Behavior190116
Node: The Set Builtin190461
Node: The Shopt Builtin201003
Node: Special Builtins216717
Node: Shell Variables217696
Node: Bourne Shell Variables218133
Node: Bash Variables220237
Node: Bash Features253052
Node: Invoking Bash254065
Node: Bash Startup Files260078
Node: Interactive Shells265181
Node: What is an Interactive Shell?265591
Node: Is this Shell Interactive?266240
Node: Interactive Shell Behavior267055
Node: Bash Conditional Expressions270684
Node: Shell Arithmetic275326
Node: Aliases278270
Node: Arrays280883
Node: The Directory Stack287130
Node: Directory Stack Builtins287914
Node: Controlling the Prompt292174
Node: The Restricted Shell295139
Node: Bash POSIX Mode297749
Node: Shell Compatibility Mode309022
Node: Job Control317051
Node: Job Control Basics317511
Node: Job Control Builtins322513
Node: Job Control Variables327913
Node: Command Line Editing329069
Node: Introduction and Notation330740
Node: Readline Interaction332363
Node: Readline Bare Essentials333554
Node: Readline Movement Commands335337
Node: Readline Killing Commands336297
Node: Readline Arguments338215
Node: Searching339259
Node: Readline Init File341445
Node: Readline Init File Syntax342706
Node: Conditional Init Constructs364194
Node: Sample Init File368390
Node: Bindable Readline Commands371514
Node: Commands For Moving372718
Node: Commands For History374769
Node: Commands For Text379763
Node: Commands For Killing383412
Node: Numeric Arguments386445
Node: Commands For Completion387584
Node: Keyboard Macros391775
Node: Miscellaneous Commands392462
Node: Readline vi Mode398401
Node: Programmable Completion399308
Node: Programmable Completion Builtins407088
Node: A Programmable Completion Example417783
Node: Using History Interactively423030
Node: Bash History Facilities423714
Node: Bash History Builtins426719
Node: History Interaction431727
Node: Event Designators435347
Node: Word Designators436701
Node: Modifiers438461
Node: Installing Bash440272
Node: Basic Installation441409
Node: Compilers and Options445131
Node: Compiling For Multiple Architectures445872
Node: Installation Names447565
Node: Specifying the System Type449674
Node: Sharing Defaults450390
Node: Operation Controls451063
Node: Optional Features452021
Node: Reporting Bugs463239
Node: Major Differences From The Bourne Shell464514
Node: GNU Free Documentation License481364
Node: Indexes506541
Node: Builtin Index506995
Node: Reserved Word Index513822
Node: Variable Index516270
Node: Function Index532762
Node: Concept Index546546

End Tag Table
+29 -3
View File
@@ -8539,9 +8539,35 @@ when the @option{-l} option is supplied.
@item compat51 (set using BASH_COMPAT)
@itemize @bullet
@item
The @code{unset} builtin treats attempts to unset array subscripts @samp{@@}
and @samp{*} differently depending on whether the array is indexed or
associative, and differently than in previous versions.
The @code{unset} builtin will unset the array @code{a} given an argument like
@samp{a[@@]}.
Bash-5.2 will unset an element with key @samp{@@} (associative arrays)
or remove all the elements without unsetting the array (indexed arrays)
@item
arithmetic commands ( ((...)) ) and the expressions in an arithmetic for
statement can be expanded more than once
@item
expressions used as arguments to arithmetic operators in the @code{[[}
conditional command can be expanded more than once
@item
the expressions in substring parameter brace expansion can be
expanded more than once
@item
the expressions in the $(( ... )) word expansion can be expanded
more than once
@item
arithmetic expressions used as indexed array subscripts can be
expanded more than once
@item
@code{test -v}, when given an argument of @samp{A[@@]}, where @var{A} is
an existing associative array, will return true if the array has any set
elements.
Bash-5.2 will look for and report on a key named @samp{@@}
@item
the $@{@var{parameter}[:]=@var{value}@} word expansion will return
@var{value}, before any variable-specific transformations have been
performed (e.g., converting to lowercase).
Bash-5.2 will return the final value assigned to the variable.
@end itemize
@end table
+3 -3
View File
@@ -2,10 +2,10 @@
Copyright (C) 1988-2021 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Mon Nov 22 09:58:18 EST 2021
@set LASTCHANGE Thu Dec 2 15:07:19 EST 2021
@set EDITION 5.2
@set VERSION 5.2
@set UPDATED 22 November 2021
@set UPDATED-MONTH November 2021
@set UPDATED 2 December 2021
@set UPDATED-MONTH December 2021