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

5 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
Run Code Online (Sandbox Code Playgroud)

结果是 $(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
Run Code Online (Sandbox Code Playgroud)

我在Solaris上运行SVN 1.8

小智 3

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

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

它会返回类似的东西/nettools/subversion/svn1.8.10/bin/

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

AUTHOR=`/nettools/subversion/svn1.8.10/bin/svnlook author -t $TXN $REPOS`
Run Code Online (Sandbox Code Playgroud)

然后echo "$AUTHOR"