SC1007
John Gardner edited this page Dec 22, 2021
·
7 revisions
Remove space after = if trying to assign a value (or for empty string, use var='' ... ).
Problematic code:
# I want programs to show text in Dutch!
LANGUAGE= nl# I want to run the nl command with English error messages!
LANGUAGE= nlCorrect code:
# I want programs to show text in Dutch!
LANGUAGE=nl# I want to run the nl command with English error messages!
LANGUAGE='' nlRationale:
It's easy to think that LANGUAGE= nl would assign "nl" to the variable LANGUAGE. It doesn't.
Instead, it runs nl (the "number lines" command) and sets LANGUAGE to an empty string in its environment.
Since trying to assign values this way is a common mistake, ShellCheck warns about it and asks you to be explicit when assigning empty strings (except for IFS, due to the common IFS= read .. idiom).
Exceptions
If you're familiar with this behavior and feel that the explicit version is unnecessary, you can ignore it.