|
1 | 1 | This document details the incompatibilities between this version of bash,
|
2 |
| -bash-3.2, and the previous widely-available versions, bash-1.14 (which is |
| 2 | +bash-4.0, and the previous widely-available versions, bash-1.14 (which is |
3 | 3 | still the `standard' version for a few Linux distributions) and bash-2.x.
|
4 | 4 | These were discovered by users of bash-2.x and 3.x, so this list is not
|
5 | 5 | comprehensive. Some of these incompatibilities occur between the current
|
@@ -271,5 +271,44 @@ bash-2.0 were significant.)
|
271 | 271 | file permission bits obtained with stat(2). This obeys restrictions of
|
272 | 272 | the file system (e.g., read-only or noexec mounts) not available via stat.
|
273 | 273 |
|
274 |
| -33. Beginning with bash-3.1/readline-5.1, the readline key binding code obeys |
275 |
| - the current setting of the `convert-meta' variable. |
| 274 | +33. Bash-3.2 adopts the convention used by other string and pattern matching |
| 275 | + operators for the `[[' compound command, and matches any quoted portion |
| 276 | + of the right-hand-side argument to the =~ operator as a string rather |
| 277 | + than a regular expression. |
| 278 | + |
| 279 | +34. Bash-4.0 allows the behavior in the previous item to be modified using |
| 280 | + the notion of a shell `compatibility level'. |
| 281 | + |
| 282 | +35. Bash-3.2 (patched) and Bash-4.0 fix a bug that leaves the shell in an |
| 283 | + inconsistent internal state following an assignment error. One of the |
| 284 | + changes means that compound commands or { ... } grouping commands are |
| 285 | + aborted under some circumstances in which they previously were not. |
| 286 | + This is what Posix specifies. |
| 287 | + |
| 288 | +36. Bash-4.0 now allows process substitution constructs to pass unchanged |
| 289 | + through brace expansion, so any expansion of the contents will have to be |
| 290 | + separately specified, and each process subsitution will have to be |
| 291 | + separately entered. |
| 292 | + |
| 293 | +37. Bash-4.0 now allows SIGCHLD to interrupt the wait builtin, as Posix |
| 294 | + specifies, so the SIGCHLD trap is no longer always invoked once per |
| 295 | + exiting child if you are using `wait' to wait for all children. |
| 296 | + |
| 297 | +38. Since bash-4.0 now follows Posix rules for finding the closing delimiter |
| 298 | + of a $() command substitution, it will not behave as previous versions |
| 299 | + did, but will catch more syntax and parsing errors before spawning a |
| 300 | + subshell to evaluate the command substitution. |
| 301 | + |
| 302 | +39. The programmable completion code uses the same set of delimiting characters |
| 303 | + as readline when breaking the command line into words, rather than the |
| 304 | + set of shell metacharacters, so programmable completion and readline |
| 305 | + should be more consistent. |
| 306 | + |
| 307 | +40. When the read builtin times out, it attempts to assign any input read to |
| 308 | + specified variables, which also causes variables to be set to the empty |
| 309 | + string if there is not enough input. Previous versions discarded the |
| 310 | + characters read. |
| 311 | + |
| 312 | +41. Beginning with bash-4.0, when one of the commands in a pipeline is killed |
| 313 | + by a SIGINT while executing a command list, the shell acts as if it |
| 314 | + received the interrupt. |
0 commit comments