Updated SC1037 (markdown)

Mingye Wang
2016-03-01 10:53:23 -05:00
parent 98a19c0fdc
commit b905d1988a

@@ -20,6 +20,15 @@ For legacy reasons, `$10` is interpreted as the variable `$1` followed by the li
Curly braces are needed to tell the shell that both digits are part of the parameter expansion. Curly braces are needed to tell the shell that both digits are part of the parameter expansion.
Please note that accessing any positional parameters beyond `$9` using `${num}` is non-POSIX.
### Exceptions ### Exceptions
If you wanted the trailing digits to be literal, `${1}0` will make this clear to both humans and shellcheck. If you wanted the trailing digits to be literal, `${1}0` will make this clear to both humans and shellcheck.
In `dash`, `$10` is ([wrongly](https://gnu.org/s/autoconf/manual/html_node/Shell-Substitutions.html)) interpreted as `${10}`, so some 'reversed' care should also be taken:
```sh
bash -c 'set a b c d e f g h i j; echo $10 ${1}0' # POSIX: a0 a0
dash -c 'set a b c d e f g h i j; echo $10 ${1}0' # WRONG: j a0
```