SC2247 – ShellCheck Wiki

See this page on GitHub

Sitemap


Flip leading $ and " if this should be a quoted substitution.

Problematic code:

var=$"(whoami)"

Correct code:

var="$(whoami)"

Rationale:

ShellCheck has found a $"( or $"{ . This is most likely due to flipping the dollar-sign and double quote:

echo $"(cmd)"  # Supposed to be "$(cmd)"
echo $"{var}"  # Supposed to be "${var}"

Instead of quoted substitutions, these will be interpreted as localized string resources ($"..") containing literal parentheses or curly braces. If this was not intentional, you should flip the " and $ like in the example.

Exceptions:

If you intentionally wanted a localized string literal $".." that starts with ( or {, either ignore this error or start it with a different character.


ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.