Skip to content
Joachim Ansorg edited this page Nov 12, 2021 · 2 revisions

This translated string is the name of a variable. Flip leading $ and " if this should be a quoted substitution.

Problematic code:

var="foo"
echo $"var"

Correct code:

var="foo"
echo "$var"

Rationale:

$".." is a localized string, for example, echo $"Hello $USER" along with the proper translation files can be used to have the script say "Bonjour, youruser" in French locales.

In this case, ShellCheck found a localized string whose contents is also the name of a variable. This could have happened because the user wanted a far more common quoted substitution, e.g. "$var", but accidentally switched the leading $ and ".

Exceptions:

If you do want a localized string whose contents is also an active variable, you can ignore this warning or rename the variable.

Related resources:

  • Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!

ShellCheck

Each individual ShellCheck warning has its own wiki page like S001. Use GitHub "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally