`set -o pipefail` を設定する。
## 背景
以下の[[Bash]]スクリプトを実行する。
```bash
#!/bin/bash
aaaaa | echo
echo $0
```
結果はこうなる。
```console
$ ./hoge.sh
./hoge.sh: line 4: aaaaa: command not found
0
```
例外処理が直感的にハンドリングできない懸念がある。
```bash
# これはexit 1にならない
aaaaa | echo || exit 1
```
## set -o pipefail 対応後
```bash
#!/bin/bash
set -o pipefail
aaaaa | echo
echo $0
```
ちゃんと0以外のエラーステータスが出力される。
```console
$ ./hoge.sh
./hoge.sh: line 4: aaaaa: command not found
127
```
以下のコードも期待通り動く。
```bash
# exit 1になる
aaaaa | echo || exit 1
```