Created SC2162 (markdown)

koalaman
2015-07-18 12:43:09 -07:00
parent 8d7187cf23
commit c3af8beb21

23
SC2162.md Normal file

@@ -0,0 +1,23 @@
## read without -r mangles backslashes
### Problematic code:
echo "Enter name:"
read name
### Correct code:
echo "Enter name:"
read -r name
### Rationale:
By default, `read` will interpret backslashes before spaces and line feeds, and otherwise strip them. This is rarely expected or desired.
Normally you just want to read data, which is what `read -r` does. All `read`s should use `-r` unless you have a good reason not to.
Note that `read -r` will still strip leading and trailing spaces. `IFS="" read -r` prevents this.
### Exceptions:
If you want backslashes to affect field splitting and line terminators instead of being read, you can disable this message with a [[directive]].