1

我正在为 PS1 变量修改一些 bash 脚本,以控制我的命令行颜色。如果我在 svn 存储库中,我想做的一件事是在本地文件夹名称之后放置“(svn)”。我如何尝试在我的 .bashrc 中使用此函数来执行此操作,我在设置 PS1 时调用该函数:

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

如果我在 svn 文件夹中,这可以正常工作。但是,如果我去一个非 svn 文件夹,它会触发这个抱怨"svn: '.' is not a working copy",这显然很烦人。我不是 bash 脚本专家,任何人都可以看到如何阻止这种情况吗?

谢谢,最大

我想到了另一种方法来判断我是否在 svn 文件夹中,即查找 .svn 目录,但 svn info 似乎更干净。另外,我只是好奇如何停止错误消息,或者以某种方式将其隐藏在我的 bash 脚本中。

4

1 回答 1

1

将命令的标准错误重定向到/dev/null

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

该命令可能会在找不到存储库时svn写入错误。stderr

于 2011-04-06T13:49:39.193 回答