1

コマンドラインの色を制御するために、PS1変数のbashスクリプトをいじっています。私がやりたいことの 1 つは、svn リポジトリにいる場合、ローカル フォルダー名の後に "(svn)" を付けることです。この atm を実行しようとしている方法は、PS1 を設定するときに呼び出す .bashrc のこの関数を使用することです。

function __svn_branch {
  local branch=$(svn info | grep URL:)
  [ "$branch" != "" ] && echo "(svn)"
}

私がsvnフォルダーにいる場合、これは正常に機能します。ただし、非 svn フォルダーに移動すると、"svn: '.' is not a working copy"明らかに迷惑なこの苦情がトリガーされます。私は bash スクリプトの専門家ではありませんが、これを停止する方法を知っている人はいますか?

ありがとう、マックス

.svn ディレクトリを探すという、svn フォルダーにいるかどうかを確認する別の方法を考えましたが、svn 情報はどういうわけかきれいに見えます。さらに、エラーメッセージを停止する方法、またはbashスクリプトで非表示にする方法に興味があります。

4

1 に答える 1

1

コマンドの標準エラーを次の場所にリダイレクトします/dev/null

local branch=$(svn info | grep URL: 2> /dev/null)

リポジトリが見つからない場合、svnコマンドはおそらくエラーを書き込みます。stderr

于 2011-04-06T13:49:39.193 に答える