mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Created SC2154 (markdown)
25
SC2154.md
Normal file
25
SC2154.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
## var is referenced but apparently never assigned.
|
||||||
|
|
||||||
|
### Problematic code:
|
||||||
|
|
||||||
|
var=name
|
||||||
|
n=42
|
||||||
|
echo "$var_$n.jpg"
|
||||||
|
|
||||||
|
### Correct code:
|
||||||
|
|
||||||
|
var=name
|
||||||
|
n=42
|
||||||
|
echo "${var}_$n.jpg"
|
||||||
|
|
||||||
|
### Rationale:
|
||||||
|
|
||||||
|
ShellCheck has noticed that you reference a variable that is not assigned. Double check that the variable is indeed assigned, and that the name is not misspelled.
|
||||||
|
|
||||||
|
Note: This message only triggers for variables with lowercase characters in their name (`foo` and `kFOO` but not `FOO`) due to the standard convention of using lowercase variable names for unexported, local variables.
|
||||||
|
|
||||||
|
### Exceptions:
|
||||||
|
|
||||||
|
ShellCheck does not attempt to figure out runtime or dynamic assignments like with `source mycommonvars.sh` or `eval var=value`.
|
||||||
|
|
||||||
|
If you know for a fact that the variable is set, you can use `${var:?}` to fail if the variable is unset (or empty). You can also disable the message with a [[directive]].
|
Reference in New Issue
Block a user