mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 11:19:45 +08:00
Revert 0bcac9013f2ec5a11132bbdefa4433988ae1cade...4d7b4d79587e7977f4b5de5145369a1bcebd151c on SC2155
13
SC2155.md
13
SC2155.md
@@ -65,3 +65,16 @@ readonly foo="$(mycmd)"
|
||||
foo="$(mycmd)"
|
||||
readonly foo
|
||||
```
|
||||
|
||||
### Word splitting and quoting issue with dash, maybe others
|
||||
|
||||
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
|
||||
VAR1='white spa/ce'
|
||||
local var2=$(printf '%s' "${VAR1}")
|
||||
```
|
||||
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: spa/ce: bad variable name
|
||||
```
|
||||
After separating this runs fine in any shell.
|
Reference in New Issue
Block a user