mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Created SC1007 (markdown)
28
SC1007.md
Normal file
28
SC1007.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# 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= nl
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
|
### Rationale:
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
### Contraindications
|
||||||
|
If you're familiar with this behavior and feel that the explicit version is unnecessary, you can ignore the message. ``alias shellcheck=`shellcheck -e SC1007` ``
|
Reference in New Issue
Block a user