-
Notifications
You must be signed in to change notification settings - Fork 1.8k
SC2195
koalaman edited this page Dec 29, 2016
·
3 revisions
case "$var " in # Trailing space
value) echo "Match"
esac
case "${var}" in # No trailing space
value) echo "Match"
esac
ShellCheck has detected that one of the patterns in a case
statement will never match.
Often, this is due to mistakes in the case statement word that results in unintended literal characters. In the problematic code, there's a trailing space that will prevent the match from ever succeeding.
For more examples of when this could happen, see SC2193 for the equivalent warning for [[ .. ]]
statements.
Note that ShellCheck warns about individual patterns in a branch, and will flag *.png
in this example even though the branch is not dead:
case "${img}.jpg" in
*.png | *.jpg) echo "It's an image"
esac
None. If you encounter a bug and wish to ignore this warning, make sure the directive goes in front of the case
and not the individual branch.