Created SC1117 (markdown)

koalaman
2017-07-04 11:59:25 -07:00
parent 47a1bf6507
commit 42570ff2e6

31
SC1117.md Normal file

@@ -0,0 +1,31 @@
## Backslash is literal in `"\n"`. Prefer explicit escaping: `"\\n"`.
### Problematic code:
```sh
printf "%s\n" "Hello"
```
### Correct code:
```sh
printf "%s\\n" "Hello"
```
or alternatively, with single quotes:
```sh
printf '%s\n' "Hello"
```
### Rationale:
In a double quoted string, you have escaped a character that has no special behavior when escaped. Instead, it's invoking the fallback behavior of being interpreted literally.
Instead of relying on this implicit fallback, you should escape the backslash explicitly. This makes it clear that it's meant to be passed as a literal backslash in the string parameter.
### Exceptions:
None. This is a stylistic issue which can be [[ignore]]d.
Before you do -- can you name the 4 characters that *are* special when escaped in double quotes?