diff --git a/SC2006.md b/SC2006.md index 4645259..d1b077e 100644 --- a/SC2006.md +++ b/SC2006.md @@ -1,20 +1,31 @@ # 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)