我是shell脚本的新手。 我在脚本中有一个现有的命令。
svn export --force "https://$svn_url/SVN_SOURCE_PATH" A_DIRECTORY
此命令显示大量输出,最后以字符串
结束Exported revision 3779.
我想捕获并将此值(3779)存储到变量中。 我怎么能这样做。
请避免svn info
或svn export --force -r
更新
我在线下试过
svn export --force "https://$svn_url/SVN_SOURCE_PATH" A_DIRECTORY | tail -n 1 | sed 's/Exported\ revision\ \([0-9][0-9]*\)\./\1/'
但我遇到的问题是,这一行停止显示控制台消息。
答案 0 :(得分:0)
如果结果总是在最后一行
svn export --force "https://$svn_url/SVN_SOURCE_PATH" A_DIRECTORY | tail -n 1 | sed 's/Exported\ revision\ \([0-9][0-9]*\)\./\1/'
答案 1 :(得分:0)
我在线下试过
svn export --force "https://$svn_url/SVN_SOURCE_PATH" A_DIRECTORY | tail -n 1 | sed 's/Exported\ revision\ \([0-9][0-9]*\)\./\1/'
但我面临的问题是,这条线停止显示控制台 消息。
这会将消息复制到 stderr ,以便它们仍然显示,并将值分配给$revision
:
revision=`svn export --force…|tee /dev/fd/2|sed -n 's/Exported revision \([0-9]*\)./\1/p'`