【问题标题】:batch script to grab revision number from svn从 svn 获取修订号的批处理脚本
【发布时间】:2011-11-11 14:26:39
【问题描述】:

我安装了 GnuWin32,所以我尝试使用 linux 命令创建一个批处理文件,以从 SVN 获取修订号并将该修订号写入文件。目前我有:

svn info | grep -i "Revision" | cut -d" " -f2 | tr -d '\n'>> %~dp0../../Include/Version.hpp

但是,该命令将始终给我 SVN 修订号,但后面跟着一个训练新行,因此给了我以下内容:

// Version.hpp
"some revision #" << followed by a '\n'
     << a new line is here

我希望我已经把我的问题说清楚了。有谁知道为什么从批处理文件运行命令而不是直接在控制台中执行命令时会发生这种情况?我该如何解决这个问题,以便 linux 命令在将修订号写入文件时不附加训练新行?

感谢您提供任何见解。

【问题讨论】:

  • 有趣的问题。虽然可能没有帮助,但我确实在带有 bash 3 的 Mac 上尝试过,并且您在附加到文件之前将tr -d '\n' 添加到管道末尾的技术对我来说都可以从命令行 在 shell 脚本中。您可能已经发现了 GnuWin32 问题。我认为这与SVN无关。看看能不能先用简单的文字复现问题。

标签: linux batch-file newline


【解决方案1】:

奇怪......也许尾随的新行来自重定向。你试过这个吗:

echo -n $(svn info | grep -i "Revision" | cut -d" " -f2 | tr -d '\n') >> %~dp0../../Include/Version.hpp

但是,在我的 Linux 站上尝试,这两种解决方案都对我很好!使用原生 Linux 系统:-p !

【讨论】:

  • 好吧,伙计们什么都没有:(我已经能够使用“cut”命令找到问题。你们知道在dos控制台中操作控制台输入/输出的方法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 2013-07-07
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多