1
0
mirror of https://github.com/koalaman/shellcheck.git synced 2025-03-12 12:35:25 -07:00

Destroyed SC2006 (markdown)

RareAir12 2024-05-06 22:15:52 +08:00
parent 904cc04561
commit 4dbf9f7dad

@ -1,33 +0,0 @@
# Use `$(...)` notation instead of legacy backticked `` `...` ``.
### Problematic code
```sh
echo "You are running on `uname`"
```
### Correct code
```sh
echo "You are running on $(uname)"
```
### Rationale
Backtick command substitution `` `...` `` is legacy syntax with several issues.
1. It has a series of undefined behaviors related to quoting in POSIX.
1. It imposes a custom escaping mode with surprising results.
1. It's exceptionally hard to nest.
`$(...)` command substitution has none of these problems, and is therefore strongly encouraged.
### Exceptions
None.
### Related resources:
* [BashFaq: Why is `$(...)` preferred over `` `...` `` (backticks)?](http://mywiki.wooledge.org/BashFAQ/082)
* [StackOverflow: What is the difference between $(command) and `` `command` `` in shell programming?](https://stackoverflow.com/questions/4708549/shell-programming-whats-the-difference-between-command-and-command)
* [shfmt](https://github.com/mvdan/sh) will automatically convert the legacy syntax