【问题标题】:verify if svn repository exists with svn info + grep使用 svn info + grep 验证 svn 存储库是否存在
【发布时间】:2018-01-22 10:41:22
【问题描述】:

尝试编写脚本来检测当前文件夹是否有 svn checkout。在没有任何 svn 文件的文件夹中运行此命令:

svn info

输出预期:

svn: E155007: '/home/prog1/Desktop/deploy' is not a working copy

使用 | grep

svn info | grep E155007

它返回:

svn: E155007: '/home/prog1/Desktop/deploy' is not a working copy

(它不是用红色突出匹配的文本)

如果我用这个更改 grep:

svn info | grep A155007

它仍然返回

svn: E155007: '/home/prog1/Desktop/deploy' is not a working copy

Subversion 命令行客户端,版本 1.8.8。 我知道我可以检查 .svn 文件夹是否存在,但奇怪的是为什么 svn info,在没有找到工作副本的情况下,不能与 | 一起使用grep。

有解决这个问题的办法吗?

【问题讨论】:

  • 您是否将工作副本与存储库混淆了?

标签: bash svn grep


【解决方案1】:
svn: E155007: '/home/prog1/Desktop/deploy' is not a working copy

是一个错误信息,通常打印在stderr上,用来检查

svn info 2>/dev/null

在终端上什么也不写,因为 stderr 重定向到 /dev/null

svn info 2>&1 | grep --color E155007

现在,将管道输入复制到 stderr,应该着色。

默认情况下 stdout(文件描述符 1)和 stderr(文件描述符 2)写入 tty。

如果没有重定向,stderr 仍然会写入 tty,而不会被 grep 过滤。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多