9bbaea4515d7053395c06e06e7912c668e6197c2
compute/bash-gotchas.md
| ... | ... | @@ -2,8 +2,9 @@ |
| 2 | 2 | This kind of shit is why sysadmins drink. |
| 3 | 3 | |
| 4 | 4 | ### (( )) can return false |
| 5 | -[Iff](https://en.wikipedia.org/wiki/If_and_only_if) the expression in (( )) evaluates to 0, the (( )) returns false, so your 'set -e' script will fall on its arse. |
|
| 5 | +[Iff](https://en.wikipedia.org/wiki/If_and_only_if) the expression in `(( blah ))` evaluates to 0, the `(( ))` returns false, so your `set -e` script will fall on its arse. |
|
| 6 | 6 | |
| 7 | 7 | ### pipes into read can return false |
| 8 | -In some old versions of bash (e.g. RHEL6), piping commands into `while read -r blah` will fail at the end of the stream. |
|
| 8 | +In some old versions of bash (e.g. RHEL6), piping commands into `while read -r blah` will fail at the end of the stream, so `set -e` will make a mockery of you. |
|
| 9 | + |
|
| 9 | 10 | Use `while read -r blah; do something; done < <(command>)` instead. |