mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 11:19:45 +08:00
Created SC2140 (markdown)
24
SC2140.md
Normal file
24
SC2140.md
Normal file
@@ -0,0 +1,24 @@
|
||||
## The double quotes around this do nothing. Remove or escape them.
|
||||
|
||||
### Problematic code:
|
||||
|
||||
echo "<img src="foo.png" />" > file.html
|
||||
|
||||
### Correct code:
|
||||
|
||||
echo "<img src=\"foo.png\" />" > file.html
|
||||
|
||||
### Rationale:
|
||||
|
||||
This warning triggers when an unquoted literal string is found between two double quoted strings. In many such cases (like the example) the quotes were supposed to be literal, and should be escaped. Without escaping, the quotes are simply removed, resulting in `src=foo.png` instead of `src="foo.png"`.
|
||||
|
||||
In other cases, like `echo "$USER"@"$HOSTNAME"`, they are merely pointless and can be removed for improved readability: `echo "$USER@HOSTNAME"`.
|
||||
|
||||
Note that in some of these cases, curly brackets would have to be added: `"$lastname"_"$firstname"` would be `"${lastname}_$firstname"`, otherwise it'd look for a variable named `$lastname_`.
|
||||
|
||||
It's common to quote individual parts of a path: `"$dir"/"$file"`. This is pointless and hard to read, but rarely indicates a bug. ShellCheck doesn't warn in this particular case.
|
||||
|
||||
|
||||
### Contraindications
|
||||
|
||||
If you know that the quotes are ineffectual but you prefer it stylistically, you can ignore this message.
|
Reference in New Issue
Block a user