Looks like $(...) is better, but I still pretty often see `...` in some articles.

you are viewing a single comment's thread
view the rest of the comments
[–] 18 points 1 year ago* (3 children)

$() for me, to quote from

https://www.shellcheck.net/wiki/SC2006

Backtick command substitution `...` is legacy syntax with several issues.

  1. It has a series of undefined behaviors related to quoting in POSIX.
  2. It imposes a custom escaping mode with surprising results.
  3. It's exceptionally hard to nest.

$(...) command substitution has none of these problems, and is therefore strongly encouraged.

  • source
  • hideshow 3 child comments
  • [–] 4 points 1 year ago (2 children)

    Shellcheck is a great tool for scripting.

    When I'm building a new script, I usually add the following function to the script and run the function before anything else. The script will exit immediately if any issues are found so I have a chance to correct things. If no issues are found, the script will simply continue.

    It's small and simple so it's easy to remove when I'm done building a script.

    script_check() {
        if ! shellcheck "${0}"; then
            exit 1
        fi
    }
    
    script_check
    

    Shellcheck has helped me learn a lot about scripting and I strongly recommend using it too.

  • source
  • parent
  • hideshow 2 child comments