You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Introduces `mapfile`, as well as the `readarray` alias for `mapfile`.
50
50
- Introduces `${var^}` and `${var,}` for uppercase and lowercase conversions.
51
51
52
-
Changelog:
52
+
<details>
53
+
<summary>Changelog:</summary>
53
54
54
55
> This document details the changes between this version, `bash-4.0-release`,
55
56
> and the previous version, `bash-4.0-rc1`.
56
57
>
57
58
> a. `readarray` is now a synonym for `mapfile`.
58
59
59
-
> This document details the changes between this version, `bash-4.0-alpha`, and the previous version,`bash-3.2-release`.
60
+
> This document details the changes between this version, `bash-4.0-alpha`, and the previous version,`bash-3.2-release`.
60
61
>
61
62
> p. The `read` builtin has a new `-i` option which inserts text into the reply buffer when using readline.
62
63
>
@@ -70,6 +71,8 @@ Changelog:
70
71
>
71
72
> hh. There are new case-modifying word expansions: uppercase `(^[^])` and lowercase `(,[,])`. They can work on either the first character or array element, or globally. They accept an optional shell pattern that determines which characters to modify. There is an optionally-configured feature to include capitalization operators.
72
73
74
+
</details>
75
+
73
76
## bash v4.1
74
77
75
78
> [!CAUTION]
@@ -88,7 +91,8 @@ From changelog:
88
91
- Introduces `BASH_XTRACEFD` for redirecting xtrace output to a file descriptor.
89
92
- Introduces `{fd}` syntax for opening unused file descriptors.
90
93
91
-
Changelog:
94
+
<details>
95
+
<summary>Changelog:</summary>
92
96
93
97
> This document details the changes between this version, `bash-4.1-alpha`, and the previous version, `bash-4.0-release`.
94
98
>
@@ -98,6 +102,8 @@ Changelog:
98
102
>
99
103
> ee. Fixed an off-by-one error when computing the number of positional parameters for the `${@:0:n}` expansion.
100
104
105
+
</details>
106
+
101
107
## bash v4.2
102
108
103
109
> [!CAUTION]
@@ -113,12 +119,15 @@ From changelog:
113
119
114
120
- Introduces `test -v VAR` for testing variable declaration
115
121
116
-
Changelog:
122
+
<details>
123
+
<summary>Changelog:</summary>
117
124
118
125
> This document details the changes between this version, `bash-4.2-alpha`, and the previous version, `bash-4.1-release`.
119
126
>
120
127
> f. `test`/`[`/`[[` have a new `-v` variable unary operator, which returns success if `variable` has been set.
121
128
129
+
</details>
130
+
122
131
## bash v4.3
123
132
124
133
> [!CAUTION]
@@ -137,14 +146,17 @@ From changelog:
137
146
- Introduces `declare -n` for creating nameref variables.
138
147
- Fixes a bug where `<&-` would not close the file descriptor
139
148
140
-
Changelog:
149
+
<details>
150
+
<summary>Changelog:</summary>
141
151
142
152
> This document details the changes between this version, `bash-4.3-alpha`, and the previous version, `bash-4.2-release`.
143
153
>
144
154
> w. The shell has `nameref` variables and new `-n`(/`+n`) options to declare and unset to use them, and a `test -R` option to test for them.
145
155
>
146
156
> bbbbb. Fixed a bug that caused redirections like <&n- to leave file descriptor n closed if executed with a builtin command.
147
157
158
+
</details>
159
+
148
160
## bash v4.4
149
161
150
162
> [!IMPORTANT]
@@ -161,7 +173,8 @@ From changelog:
161
173
162
174
- No longer throws upon accessing an empty array. Previously must do `[[ "${#arr[@]}" -ne 0 ]] && for item in "${arr[@]}"; do`.
163
175
164
-
Changelog:
176
+
<details>
177
+
<summary>Changelog:</summary>
165
178
166
179
> This document details the changes between this version, `bash-4.4-rc2`, and the previous version, `bash-4.4-beta2`.
167
180
>
@@ -171,6 +184,8 @@ Changelog:
171
184
>
172
185
> d. The `mapfile` builtin now has a `-d` option to use an arbitrary character as the record delimiter, and a `-t` option to strip the delimiter as supplied with `-d`.
173
186
187
+
</details>
188
+
174
189
## bash v5.0
175
190
176
191
> [!NOTE]
@@ -180,7 +195,8 @@ From changelog:
180
195
181
196
- No longer causes strange duplications when working with `$'\001'`
182
197
183
-
Changelog:
198
+
<details>
199
+
<summary>Changelog:</summary>
184
200
185
201
> This document details the changes between this version, `bash-5.0-beta`, and the previous version, `bash-5.0-alpha`.
186
202
>
@@ -218,18 +234,29 @@ Changelog:
218
234
>
219
235
> yyy. `wait` without arguments attempts to wait for all active process substitution processes.
220
236
237
+
</details>
238
+
221
239
## bash v5.1
222
240
241
+
> [!IMPORTANT]
242
+
> This is this is the recommended minimum version for Dorothy on SUSE platforms.
- Introduces `test -v INDEX` for testing positional declaration
230
-
-Associative arrays now properly functional.
252
+
-Fixes `wait_for: No record of process ...` crashes; according to [this user report](https://gist.github.com/azat/affbda3f8c6b5c38648d4ab105777d88), it is this version that fixes it
231
253
232
-
Changelog:
254
+
<details>
255
+
<summary>Changelog:</summary>
256
+
257
+
> This document details the changes between this version, `bash-5.1-beta`, and the previous version, `bash-5.1-alpha`.
258
+
>
259
+
> e. Make sure `SIGCHLD` is blocked in all cases where `waitchld()` is not called from a signal handler.
233
260
234
261
> This document details the changes between this version, `bash-5.1-alpha`, and the previous version, `bash-5.0-release`.
235
262
>
@@ -239,16 +266,95 @@ Changelog:
239
266
>
240
267
> oo. Fixed several issues with assigning an associative array variable using a compound assignment that expands the value of the same variable.
241
268
269
+
</details>
270
+
242
271
## bash v5.2
243
272
244
273
From changelog:
245
274
246
275
- Nameref variables (`declare -n nameref`) now properly functional.
247
276
248
-
Changelog:
277
+
<details>
278
+
<summary>Changelog:</summary>
249
279
250
280
> This document details the changes between this version, `bash-5.2-alpha`, and the previous version, `bash-5.1-release`.
251
281
>
252
282
> g. Fixed a problem with performing an assignment with `+=` to an array element that was the value of a nameref.
253
283
> h. Fixed a bug that could cause a nameref containing an array reference using `@` or `*` not to expand to multiple words.
254
284
> bb. Array references using `@` and `*` that are the value of nameref variables (`declare -n ref='v[@]' ; echo $ref`) no longer cause the shell to exit if `set -u` is enabled and the array (`v`) is unset.
285
+
286
+
</details>
287
+
288
+
## bash v5.3
289
+
290
+
From changelog:
291
+
292
+
- Introduces performant command interpolation, via command substitution `${command;}` or `${|command;}` instead of process substitution `$(command)`.
293
+
- Introduces `fltexpr` for floating point arithmetic.
294
+
- When debugging, `LINENO` is now correct.
295
+
- We've likely encountered the plethora of bugs fixed in this version, however, by the time of its release, Dorothy already implemented workarounds, such that these bugs are not surfaced.
296
+
297
+
<details>
298
+
<summary>Changelog:</summary>
299
+
300
+
> This document details the changes between this version, `bash-5.3-rc2`, and the previous version, `bash-5.3-rc1`.
301
+
>
302
+
> f. Fixed an issue with a backslash-newline appearing after a right paren in a nested subshell command.
303
+
>
304
+
> h. Fixed an issue with a nameref variable referencing an unset array element when the `nounset` option is enabled.
305
+
306
+
> This document details the changes between this version, `bash-5.3-rc1`, and the previous version, `bash-5.3-beta`.
307
+
>
308
+
> d. Changes to `set -e` exit behavior in posix mode, since POSIX now says to exit as if executing the `exit builtin with no arguments`.
309
+
>
310
+
> a. There is a new `fltexpr' loadable builtin to perform floating-point arithmetic similarly to `let'.
311
+
312
+
> This document details the changes between this version, `bash-5.3-beta`, and the previous version, `bash-5.3-alpha`.
313
+
>
314
+
> e. The bash build process now assumes a `C90` compilation environment and a `POSIX.1-1990` execution environment.
315
+
>
316
+
> x. Fix for return status for commands whose return status is being inverted when set -e is ignored.
317
+
>
318
+
> i. `wait -n` can now return terminated process substitutions, jobs about which the user has already been notified (like `wait` without options)
319
+
>
320
+
> q. If `exit` is run in a trap and not supplied an exit status argument, it uses the value of `$?` from before the trap only if it's run at the trap's `top level` and would cause the trap to end (that is, not in a subshell). This is from Posix interp 1602.
321
+
322
+
> This document details the changes between this version, `bash-5.3-alpha`, and the previous version, `bash-5.2-release`.
323
+
>
324
+
> c. Fixed a bug with subshell command execution that caused it to set `LINENO` incorrectly.
325
+
>
326
+
> g. Fixed a bug where nested word expansions confused the state parser and resulted in quotes being required where they should not have been.
327
+
>
328
+
> s. Fixed a bug that caused the shell to unlink FIFOs used for process substitution before a compound command completes.
329
+
>
330
+
> u. Fixed a bug that caused subshells not to run the `EXIT` trap if a signal arrived after the command and before returning to the caller.
331
+
>
332
+
> v. Fixed a bug where `wait` without arguments could wait for inherited process substitutions, which are not children of this shell.
333
+
>
334
+
> w. Fixed a bug with expanding $\* in a here-document body.
335
+
>
336
+
> y. Change for POSIX interpretation 1602 about the default return status for `return` in a trap command.
337
+
>
338
+
> gg. Fixed a bug that caused `eval` to run the ERR trap in commands where it should not.
339
+
>
340
+
> rrr. Treat the failure to open file in `$(<file)` as a non-fatal expansion error instead of a fatal redirection error.
341
+
>
342
+
> ttt. Fix `{var}>&-` so it doesn't silently close stdin if var is not a number.
343
+
>
344
+
> yyy. Fix bug that caused `FUNCNAME` not to be reset after a parse error with compound assignments to local variables.
345
+
>
346
+
> kkkk. `BASH_REMATCH` can now be a local variable.
347
+
>
348
+
> xxxx. Fix bug with closing `/dev/fd` process substitutions in shell functions.
349
+
>
350
+
> j. `trap` has a new `-P` option that prints the trap action associated with each signal argument.
351
+
>
352
+
> l. `printf` uses the `alternate form` for `%q` and `%Q` to force single quoting.
353
+
>
354
+
> s. New form of command substitution: `${ command; }` or `${|command;}` to capture the output of COMMAND without forking a child process and using pipes.
355
+
>
356
+
> q. `GLOBSORT`: new variable to specify how to sort the results of pathname expansion (`name`, `size`, `blocks`, `mtime`, `atime`, `ctime`, `none`) in ascending or descending order.
357
+
>
358
+
> x. `BASH_TRAPSIG`: new variable, set to the numeric signal number of the trap being executed while it's running.
0 commit comments