SVN命令在变量中的存储结果

时间:2016-06-17 15:52:12

标签: svn

我正在尝试从SVN中的事务中获取用户名来提交回购。

我在pre-commit hook中写了以下内容:

REPOS="$1"
TXN="$2"

touch /root/home/r/WC/log.log
AUTHOR="$(svnlook author -t $TXN $REPOS)"    
echo $AUTHOR >> /root/home/r/WC/log.log     

exit 0

结果是$(svnlook author -t 12-r /root/home/r/REPO)

显然TXN和REPOS变量是内插的,但svnlook author命令没有被执行。

我尝试了其他编写命令的方法,例如

AUTHOR=$(svnlook author -t $TVN $REPOS)    # returned syntax error
AUTHOR=`svnlook author -t $TVN $REPOS`     # did not execute the svnlook command

我在Solaris上运行SVN 1.8

1 个答案:

答案 0 :(得分:3)

在预提交中,可能未定义svnlook命令,这就是您以字符串格式获取它的原因。

您需要在命令行上执行svnlook来找出which svnlook的路径。

它将返回类似/nettools/subversion/svn1.8.10/bin/

的内容

现在,您可以执行以下操作:

AUTHOR=`/nettools/subversion/svn1.8.10/bin/svnlook author -t $TXN $REPOS`

然后echo "$AUTHOR"