mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-08-20 09:00:43 +02:00
change expansion for key-value pair compound assignment to associative arrays to split all words before identifying keys and values; controlled by a new shopt option: kvpair_split, enabled by default; new `loadassoc' loadable builtin to load an associative array from a set of key-value arguments
This commit is contained in:
+183
-150
@@ -1,9 +1,9 @@
|
||||
This is bash.info, produced by makeinfo version 7.3 from bashref.texi.
|
||||
|
||||
This text is a brief description of the features that are present in the
|
||||
Bash shell (version 5.3, 9 July 2026).
|
||||
Bash shell (version 5.3, 14 August 2026).
|
||||
|
||||
This is Edition 5.3, last updated 9 July 2026, of ‘The GNU Bash
|
||||
This is Edition 5.3, last updated 14 August 2026, of ‘The GNU Bash
|
||||
Reference Manual’, for ‘Bash’, Version 5.3.
|
||||
|
||||
Copyright © 1988-2026 Free Software Foundation, Inc.
|
||||
@@ -26,10 +26,10 @@ Bash Features
|
||||
*************
|
||||
|
||||
This text is a brief description of the features that are present in the
|
||||
Bash shell (version 5.3, 9 July 2026). The Bash home page is
|
||||
Bash shell (version 5.3, 14 August 2026). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 5.3, last updated 9 July 2026, of ‘The GNU Bash
|
||||
This is Edition 5.3, last updated 14 August 2026, of ‘The GNU Bash
|
||||
Reference Manual’, for ‘Bash’, Version 5.3.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -5463,6 +5463,15 @@ This builtin allows you to change additional optional shell behavior.
|
||||
as in a non-interactive shell. This option is enabled by
|
||||
default.
|
||||
|
||||
‘kvpair_split’
|
||||
If set, a compound assignment to an associative array performs
|
||||
word expansions, including word splitting, on all words in the
|
||||
assignment before identifying keys and values. If it is
|
||||
unset, each word in the compound assignment list is identified
|
||||
as a key or value before performing the appropriate word
|
||||
expansions, and word splitting is not performed. This option
|
||||
is enabled by default.
|
||||
|
||||
‘lastpipe’
|
||||
If set, and job control is not active, the shell runs the last
|
||||
command of a pipeline not executed in the background in the
|
||||
@@ -7340,13 +7349,20 @@ Indexing starts at zero.
|
||||
When assigning to an associative array, the words in a compound
|
||||
assignment may be either assignment statements, for which the subscript
|
||||
is required, or a list of words that is interpreted as a sequence of
|
||||
alternating keys and values: NAME=(KEY1 VALUE1 KEY2 VALUE2 ... ). These
|
||||
are treated identically to NAME=( [KEY1]=VALUE1 [KEY2]=VALUE2 ... ).
|
||||
The first word in the list determines how the remaining words are
|
||||
alternating keys and values: NAME=(KEY1 VALUE1 KEY2 VALUE2 ... ). The
|
||||
first word in the list determines how the remaining words are
|
||||
interpreted; all assignments in a list must be of the same type. When
|
||||
using key/value pairs, the keys may not be missing or empty; a final
|
||||
missing value is treated like the empty string.
|
||||
|
||||
The ‘kvpair_split’ option to the ‘shopt’ builtin (see *note The Shopt
|
||||
Builtin::) determines how the words in a key/value pair assignment list
|
||||
are treated. If it is enabled, each word in the list undergoes word
|
||||
expansions, including word splitting, before the assignment identifies
|
||||
individual keys and values. If it is unset, the key/value pairs in the
|
||||
example above are treated identically to NAME=( [KEY1]=VALUE1
|
||||
[KEY2]=VALUE2 ... ) and expanded appropriately.
|
||||
|
||||
This syntax is also accepted by the ‘declare’ builtin. Individual
|
||||
array elements may be assigned to using the ‘NAME[SUBSCRIPT]=VALUE’
|
||||
syntax introduced above.
|
||||
@@ -9780,7 +9796,6 @@ File: bash.info, Node: Commands For History, Next: Commands For Text, Prev: C
|
||||
|
||||
‘non-incremental-reverse-search-history (M-p)’
|
||||
Search backward starting at the current line and moving "up"
|
||||
|
||||
through the history as necessary using a non-incremental search for
|
||||
a string supplied by the user. The search string may match
|
||||
anywhere in a history line.
|
||||
@@ -9791,6 +9806,20 @@ File: bash.info, Node: Commands For History, Next: Commands For Text, Prev: C
|
||||
a string supplied by the user. The search string may match
|
||||
anywhere in a history line.
|
||||
|
||||
‘non-incremental-reverse-search-history-again ()’
|
||||
Search backward starting at the current line and moving "up"
|
||||
through the history as necessary using a non-incremental search for
|
||||
the last non-incremental search string used. If there is no
|
||||
previous search string, this command returns an error. The search
|
||||
string may match anywhere in a history line.
|
||||
|
||||
‘non-incremental-forward-search-history-again ()’
|
||||
Search forward starting at the current line and moving "down"
|
||||
through the history as necessary using a non-incremental search for
|
||||
the last non-incremental search string used. If there is no
|
||||
previous search string, this command returns an error. The search
|
||||
string may match anywhere in a history line.
|
||||
|
||||
‘history-search-backward ()’
|
||||
Search backward through the history for the string of characters
|
||||
between the start of the current line and the point. The search
|
||||
@@ -13472,7 +13501,7 @@ D.4 Function Index
|
||||
* export-completions (): Commands For Completion.
|
||||
(line 44)
|
||||
* fetch-history (): Commands For History.
|
||||
(line 109)
|
||||
(line 122)
|
||||
* forward-backward-delete-char (): Commands For Text. (line 23)
|
||||
* forward-char (C-f): Commands For Moving. (line 14)
|
||||
* forward-search-history (C-s): Commands For History.
|
||||
@@ -13489,13 +13518,13 @@ D.4 Function Index
|
||||
* history-expand-line (M-^): Miscellaneous Commands.
|
||||
(line 142)
|
||||
* history-search-backward (): Commands For History.
|
||||
(line 54)
|
||||
(line 67)
|
||||
* history-search-forward (): Commands For History.
|
||||
(line 61)
|
||||
* history-substring-search-backward (): Commands For History.
|
||||
(line 68)
|
||||
* history-substring-search-forward (): Commands For History.
|
||||
(line 74)
|
||||
* history-substring-search-backward (): Commands For History.
|
||||
(line 81)
|
||||
* history-substring-search-forward (): Commands For History.
|
||||
(line 87)
|
||||
* insert-comment (M-#): Miscellaneous Commands.
|
||||
(line 59)
|
||||
* insert-completions (M-*): Commands For Completion.
|
||||
@@ -13520,11 +13549,15 @@ D.4 Function Index
|
||||
(line 18)
|
||||
* next-screen-line (): Commands For Moving. (line 45)
|
||||
* non-incremental-forward-search-history (M-n): Commands For History.
|
||||
(line 48)
|
||||
(line 47)
|
||||
* non-incremental-forward-search-history-again (): Commands For History.
|
||||
(line 60)
|
||||
* non-incremental-reverse-search-history (M-p): Commands For History.
|
||||
(line 41)
|
||||
* non-incremental-reverse-search-history-again (): Commands For History.
|
||||
(line 53)
|
||||
* operate-and-get-next (C-o): Commands For History.
|
||||
(line 102)
|
||||
(line 115)
|
||||
* overwrite-mode (): Commands For Text. (line 77)
|
||||
* possible-command-completions (C-x !): Commands For Completion.
|
||||
(line 111)
|
||||
@@ -13588,9 +13621,9 @@ D.4 Function Index
|
||||
* yank (C-y): Commands For Killing.
|
||||
(line 72)
|
||||
* yank-last-arg (M-. or M-_): Commands For History.
|
||||
(line 90)
|
||||
(line 103)
|
||||
* yank-nth-arg (M-C-y): Commands For History.
|
||||
(line 80)
|
||||
(line 93)
|
||||
* yank-pop (M-y): Commands For Killing.
|
||||
(line 75)
|
||||
|
||||
@@ -13771,138 +13804,138 @@ D.5 Concept Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top891
|
||||
Node: Introduction2822
|
||||
Node: What is Bash?3035
|
||||
Node: What is a shell?4168
|
||||
Node: Definitions6778
|
||||
Node: Basic Shell Features10105
|
||||
Node: Shell Syntax11329
|
||||
Node: Shell Operation12356
|
||||
Node: Quoting13647
|
||||
Node: Escape Character14985
|
||||
Node: Single Quotes15520
|
||||
Node: Double Quotes15869
|
||||
Node: ANSI-C Quoting17214
|
||||
Node: Locale Translation18608
|
||||
Node: Creating Internationalized Scripts20011
|
||||
Node: Comments24209
|
||||
Node: Shell Commands24976
|
||||
Node: Reserved Words25915
|
||||
Node: Simple Commands27058
|
||||
Node: Pipelines27720
|
||||
Node: Lists30976
|
||||
Node: Compound Commands32925
|
||||
Node: Looping Constructs33934
|
||||
Node: Conditional Constructs36483
|
||||
Node: Command Grouping51795
|
||||
Node: Coprocesses53287
|
||||
Node: GNU Parallel55973
|
||||
Node: Shell Functions56891
|
||||
Node: Shell Parameters65339
|
||||
Node: Positional Parameters70240
|
||||
Node: Special Parameters71330
|
||||
Node: Shell Expansions74791
|
||||
Node: Brace Expansion76980
|
||||
Node: Tilde Expansion80316
|
||||
Node: Shell Parameter Expansion83271
|
||||
Node: Command Substitution104119
|
||||
Node: Arithmetic Expansion107970
|
||||
Node: Process Substitution109154
|
||||
Node: Word Splitting110321
|
||||
Node: Filename Expansion112765
|
||||
Node: Pattern Matching115989
|
||||
Node: Quote Removal121755
|
||||
Node: Redirections122059
|
||||
Node: Executing Commands132328
|
||||
Node: Simple Command Expansion132995
|
||||
Node: Command Search and Execution135103
|
||||
Node: Command Execution Environment137547
|
||||
Node: Environment141073
|
||||
Node: Exit Status142976
|
||||
Node: Signals145035
|
||||
Node: Shell Scripts149983
|
||||
Node: Shell Builtin Commands153287
|
||||
Node: Bourne Shell Builtins155628
|
||||
Node: Bash Builtins182347
|
||||
Node: Modifying Shell Behavior220082
|
||||
Node: The Set Builtin220424
|
||||
Node: The Shopt Builtin232456
|
||||
Node: Special Builtins249509
|
||||
Node: Shell Variables250498
|
||||
Node: Bourne Shell Variables250932
|
||||
Node: Bash Variables253440
|
||||
Node: Bash Features292724
|
||||
Node: Invoking Bash293738
|
||||
Node: Bash Startup Files300968
|
||||
Node: Interactive Shells306328
|
||||
Node: What is an Interactive Shell?306736
|
||||
Node: Is this Shell Interactive?307398
|
||||
Node: Interactive Shell Behavior308222
|
||||
Node: Bash Conditional Expressions311983
|
||||
Node: Shell Arithmetic317400
|
||||
Node: Aliases320727
|
||||
Node: Arrays323861
|
||||
Node: The Directory Stack331563
|
||||
Node: Directory Stack Builtins332360
|
||||
Node: Controlling the Prompt336805
|
||||
Node: The Restricted Shell339924
|
||||
Node: Bash POSIX Mode343017
|
||||
Node: Shell Compatibility Mode362976
|
||||
Node: Job Control371983
|
||||
Node: Job Control Basics372440
|
||||
Node: Job Control Builtins378808
|
||||
Node: Job Control Variables385596
|
||||
Node: Command Line Editing386827
|
||||
Node: Introduction and Notation388530
|
||||
Node: Readline Interaction390882
|
||||
Node: Readline Bare Essentials392070
|
||||
Node: Readline Movement Commands393878
|
||||
Node: Readline Killing Commands394874
|
||||
Node: Readline Arguments396897
|
||||
Node: Searching397987
|
||||
Node: Readline Init File400230
|
||||
Node: Readline Init File Syntax401533
|
||||
Node: Conditional Init Constructs428484
|
||||
Node: Sample Init File432869
|
||||
Node: Bindable Readline Commands435989
|
||||
Node: Commands For Moving437527
|
||||
Node: Commands For History439991
|
||||
Node: Commands For Text445384
|
||||
Node: Commands For Killing449509
|
||||
Node: Numeric Arguments452297
|
||||
Node: Commands For Completion453449
|
||||
Node: Keyboard Macros459145
|
||||
Node: Miscellaneous Commands459846
|
||||
Node: Readline vi Mode467389
|
||||
Node: Programmable Completion468366
|
||||
Node: Programmable Completion Builtins478102
|
||||
Node: A Programmable Completion Example489839
|
||||
Node: Using History Interactively495184
|
||||
Node: Bash History Facilities495865
|
||||
Node: Bash History Builtins499600
|
||||
Node: History Interaction507195
|
||||
Node: Event Designators512145
|
||||
Node: Word Designators513723
|
||||
Node: Modifiers516115
|
||||
Node: Installing Bash518052
|
||||
Node: Basic Installation519168
|
||||
Node: Compilers and Options523044
|
||||
Node: Compiling For Multiple Architectures523794
|
||||
Node: Installation Names525547
|
||||
Node: Specifying the System Type527781
|
||||
Node: Sharing Defaults528527
|
||||
Node: Operation Controls529241
|
||||
Node: Optional Features530260
|
||||
Node: Reporting Bugs542983
|
||||
Node: Major Differences From The Bourne Shell544340
|
||||
Node: GNU Free Documentation License565767
|
||||
Node: Indexes590944
|
||||
Node: Builtin Index591395
|
||||
Node: Reserved Word Index598493
|
||||
Node: Variable Index600938
|
||||
Node: Function Index618351
|
||||
Node: Concept Index632484
|
||||
Node: Top897
|
||||
Node: Introduction2834
|
||||
Node: What is Bash?3047
|
||||
Node: What is a shell?4180
|
||||
Node: Definitions6790
|
||||
Node: Basic Shell Features10117
|
||||
Node: Shell Syntax11341
|
||||
Node: Shell Operation12368
|
||||
Node: Quoting13659
|
||||
Node: Escape Character14997
|
||||
Node: Single Quotes15532
|
||||
Node: Double Quotes15881
|
||||
Node: ANSI-C Quoting17226
|
||||
Node: Locale Translation18620
|
||||
Node: Creating Internationalized Scripts20023
|
||||
Node: Comments24221
|
||||
Node: Shell Commands24988
|
||||
Node: Reserved Words25927
|
||||
Node: Simple Commands27070
|
||||
Node: Pipelines27732
|
||||
Node: Lists30988
|
||||
Node: Compound Commands32937
|
||||
Node: Looping Constructs33946
|
||||
Node: Conditional Constructs36495
|
||||
Node: Command Grouping51807
|
||||
Node: Coprocesses53299
|
||||
Node: GNU Parallel55985
|
||||
Node: Shell Functions56903
|
||||
Node: Shell Parameters65351
|
||||
Node: Positional Parameters70252
|
||||
Node: Special Parameters71342
|
||||
Node: Shell Expansions74803
|
||||
Node: Brace Expansion76992
|
||||
Node: Tilde Expansion80328
|
||||
Node: Shell Parameter Expansion83283
|
||||
Node: Command Substitution104131
|
||||
Node: Arithmetic Expansion107982
|
||||
Node: Process Substitution109166
|
||||
Node: Word Splitting110333
|
||||
Node: Filename Expansion112777
|
||||
Node: Pattern Matching116001
|
||||
Node: Quote Removal121767
|
||||
Node: Redirections122071
|
||||
Node: Executing Commands132340
|
||||
Node: Simple Command Expansion133007
|
||||
Node: Command Search and Execution135115
|
||||
Node: Command Execution Environment137559
|
||||
Node: Environment141085
|
||||
Node: Exit Status142988
|
||||
Node: Signals145047
|
||||
Node: Shell Scripts149995
|
||||
Node: Shell Builtin Commands153299
|
||||
Node: Bourne Shell Builtins155640
|
||||
Node: Bash Builtins182359
|
||||
Node: Modifying Shell Behavior220094
|
||||
Node: The Set Builtin220436
|
||||
Node: The Shopt Builtin232468
|
||||
Node: Special Builtins250004
|
||||
Node: Shell Variables250993
|
||||
Node: Bourne Shell Variables251427
|
||||
Node: Bash Variables253935
|
||||
Node: Bash Features293219
|
||||
Node: Invoking Bash294233
|
||||
Node: Bash Startup Files301463
|
||||
Node: Interactive Shells306823
|
||||
Node: What is an Interactive Shell?307231
|
||||
Node: Is this Shell Interactive?307893
|
||||
Node: Interactive Shell Behavior308717
|
||||
Node: Bash Conditional Expressions312478
|
||||
Node: Shell Arithmetic317895
|
||||
Node: Aliases321222
|
||||
Node: Arrays324356
|
||||
Node: The Directory Stack332459
|
||||
Node: Directory Stack Builtins333256
|
||||
Node: Controlling the Prompt337701
|
||||
Node: The Restricted Shell340820
|
||||
Node: Bash POSIX Mode343913
|
||||
Node: Shell Compatibility Mode363872
|
||||
Node: Job Control372879
|
||||
Node: Job Control Basics373336
|
||||
Node: Job Control Builtins379704
|
||||
Node: Job Control Variables386492
|
||||
Node: Command Line Editing387723
|
||||
Node: Introduction and Notation389426
|
||||
Node: Readline Interaction391778
|
||||
Node: Readline Bare Essentials392966
|
||||
Node: Readline Movement Commands394774
|
||||
Node: Readline Killing Commands395770
|
||||
Node: Readline Arguments397793
|
||||
Node: Searching398883
|
||||
Node: Readline Init File401126
|
||||
Node: Readline Init File Syntax402429
|
||||
Node: Conditional Init Constructs429380
|
||||
Node: Sample Init File433765
|
||||
Node: Bindable Readline Commands436885
|
||||
Node: Commands For Moving438423
|
||||
Node: Commands For History440887
|
||||
Node: Commands For Text447044
|
||||
Node: Commands For Killing451169
|
||||
Node: Numeric Arguments453957
|
||||
Node: Commands For Completion455109
|
||||
Node: Keyboard Macros460805
|
||||
Node: Miscellaneous Commands461506
|
||||
Node: Readline vi Mode469049
|
||||
Node: Programmable Completion470026
|
||||
Node: Programmable Completion Builtins479762
|
||||
Node: A Programmable Completion Example491499
|
||||
Node: Using History Interactively496844
|
||||
Node: Bash History Facilities497525
|
||||
Node: Bash History Builtins501260
|
||||
Node: History Interaction508855
|
||||
Node: Event Designators513805
|
||||
Node: Word Designators515383
|
||||
Node: Modifiers517775
|
||||
Node: Installing Bash519712
|
||||
Node: Basic Installation520828
|
||||
Node: Compilers and Options524704
|
||||
Node: Compiling For Multiple Architectures525454
|
||||
Node: Installation Names527207
|
||||
Node: Specifying the System Type529441
|
||||
Node: Sharing Defaults530187
|
||||
Node: Operation Controls530901
|
||||
Node: Optional Features531920
|
||||
Node: Reporting Bugs544643
|
||||
Node: Major Differences From The Bourne Shell546000
|
||||
Node: GNU Free Documentation License567427
|
||||
Node: Indexes592604
|
||||
Node: Builtin Index593055
|
||||
Node: Reserved Word Index600153
|
||||
Node: Variable Index602598
|
||||
Node: Function Index620011
|
||||
Node: Concept Index634436
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
Reference in New Issue
Block a user