Skip to content

Files

Latest commit

 

History

History
43 lines (28 loc) · 1.04 KB

SC1007.md

File metadata and controls

43 lines (28 loc) · 1.04 KB

Pattern: Confusing space after =

Issue: -

Description

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).

Example of incorrect code:

# I want programs to show text in dutch!
LANGUAGE= nl
# I want to run the nl command with English error messages!
LANGUAGE= nl

Example of correct code:

# I want programs to show text in dutch!
LANGUAGE=nl
# I want to run the nl command with English error messages!
LANGUAGE='' nl

Exceptions

If you're familiar with this behavior and feel that the explicit version is unnecessary, you can ignore it.

Further Reading