はじめに
コマンドの結果をパイプで渡すと以下のようになります。
$ ls -a | grep .env
.env
上記のls -a
の実行結果も画面に表示させる方法について記載します。
画面にも表示させる方法
コマンドの実行結果を画面とパイプの両方に渡すには以下のように実行します。
zsh
$ ls -a >&2 | grep .env
.
..
.DS_Store
.env
.git
.env
上記の実行結果の内上から.git
までがls -a
の実行結果です。
最後に再度.env
と表示されているのがgrep .env
の実行結果になります。
上記の方法はshやbashでは使用できません。
bash
$ ls -a >&2 | grep .env
.
..
.DS_Store
.env
.git
$ echo $?
1
以下の方法はzshとbashで使用することができます。
zshまたはbash
$ ls -a | tee >(grep .env)
.
..
.DS_Store
.env
.git
.env
shで実行すると以下のようにエラーとなります。
sh
$ ls -a | tee >(grep .env)
sh: 1: Syntax error: "(" unexpected
以下の方法であればshでも使用可能です。
$ ls -a | tee -a /dev/stderr | grep .env
.
..
.DS_Store
.env
.git
.env