Linuxコマンドラインでコマンドが失敗しないときに、1つのコマンドだけが出力を別のコマンドにパイプするようにする方法はありますか?
$ cmda | cmdb
cmda
ゼロ以外のステータスコードが返されたときにその出力がにリダイレクトされないようにしたいと思いますcmdb
。
答え1
これを行うには、出力を変数に保存する必要があります。例は次のとおりです。
if output=$(cmda); then
printf '%s' "$output" | cmdb
fi
Linuxコマンドラインでコマンドが失敗しないときに、1つのコマンドだけが出力を別のコマンドにパイプするようにする方法はありますか?
$ cmda | cmdb
cmda
ゼロ以外のステータスコードが返されたときにその出力がにリダイレクトされないようにしたいと思いますcmdb
。
これを行うには、出力を変数に保存する必要があります。例は次のとおりです。
if output=$(cmda); then
printf '%s' "$output" | cmdb
fi