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 SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally