Skip to content

Files

Latest commit

 

History

History
37 lines (21 loc) · 984 Bytes

SC2209.md

File metadata and controls

37 lines (21 loc) · 984 Bytes

Pattern: Missing use of var=$(command)

Issue: -

Description

Putting var= in front of a command will not assign its output. Use var=$(command here) to execute the command and capture its output.

If you do want to assign a literal string, use quotes to make this clear to ShellCheck and humans alike.

Example of incorrect code:

user=whoami         # Want to run whoami and assign output

PAGER=cat git log   # Want to assign the string "cat"

Example of correct code:

user=$(whoami)

PAGER="cat" git log

Exceptions

None.

Quoting a single command (as in PAGER="cat" above) doesn't change how the script works. It's purely to show shellcheck (and humans) that a literal assignment of a command name is intentional.

This warning triggers generally when a variable is assigned an unquoted command name (from a list of hard coded names).

Further Reading