mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-04 03:46:06 +08:00
Updated SC1037 (markdown)
@@ -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
|
||||||
|
```
|
||||||
|
Reference in New Issue
Block a user