標準出力が生成されると、Linuxコマンドラインは失敗します。

標準出力が生成されると、Linuxコマンドラインは失敗します。

Linuxで出力をパイプする単純なユーティリティはありますか?

  • 標準出力(および/または標準エラー)に出力がない場合、成功コードが返されます。
  • 標準出力(および/または標準エラー)で出力が生成されると、失敗コードが返されます。

いくつかのコンテキストを提供するために私が実行したコマンドは次のとおりです。

svn mergeinfo --show-revs eligible
http://mysvnserver.example.com/SVF/repos/common/abc/branches/abc-1.7
http://mysvnserver.example.com/SVF/repos/common/abc/trunk

ブランチにマージされていないエントリがある場合、コマンドは標準出力にリビジョン番号のリストを返します。理想的には、追加のコマンドを次のように呼び出すことができます。

  • 標準出力のエントリを検出し、エラー条件をLinuxに返します。
  • 端末で終了するように標準出力を渡します。私はそれを抑制しないことをお勧めします。

ベストアンサー1

これがgrepあなたが探しているものです:

if svn ... 2>&1 | grep '^'; then
  echo "there was some output"
else
  echo "there wasn't"
fi

空でないか空でない行を確認するために、またはにgrep '^'置き換えることができます(ただし、これは出力から空白/空白行を削除します)。grep .grep '[^[:blank:]]'

grep(入力にNULバイト、長すぎる、または終了していない行などの非テキストデータが含まれている場合、動作svnは実装ごとに異なります(ただし、これは発生しません)。

おすすめ記事