Revert 3a9a7ef^...3a9a7ef on SC2155

Martin Bagge / brother
2020-05-12 08:17:23 +02:00
parent 3a9a7eff84
commit a4d88674c0

@@ -71,13 +71,13 @@ readonly foo
A serious quoting problem with dash is another reason to declare and assign separately. Dash is the [default, `/bin/sh` shell on Ubuntu](https://wiki.ubuntu.com/DashAsBinSh). More specifically, dash version 0.5.8-2.10 and others cannot run this code: A serious quoting problem with dash is another reason to declare and assign separately. Dash is the [default, `/bin/sh` shell on Ubuntu](https://wiki.ubuntu.com/DashAsBinSh). More specifically, dash version 0.5.8-2.10 and others cannot run this code:
```sh ```sh
f(){ local e=$1; } f(){ local e=$1; }
g(){ local g=$(printf '%s' "foo 2"); }
f "1 2" f "1 2"
export g=$(printf '%s' "foo 2") g
``` ```
While this runs fine in other shells, [dash doesn't treat this as an assignment](http://mywiki.wooledge.org/BashPitfalls#local_var.3D.24.28cmd.29) and fails like this: While this runs fine in other shells, [dash doesn't treat this as an assignment](http://mywiki.wooledge.org/BashPitfalls#local_var.3D.24.28cmd.29) and fails like this:
``` ```
local: 2: bad variable name local: 2: bad variable name
export: 2: bad variable name
``` ```
The direct workaround to this bug is to quote the right-hand-side of the assignment. Separating declaraction and assignment also makes this runs fine in any shell. The direct workaround to this bug is to quote the right-hand-side of the assignment. Separating declaraction and assignment also makes this runs fine in any shell.