2016-06-17 16 views
4

Ich versuche, den Benutzernamen aus der Transaktion SVN Commit zu einem Repo zu bekommen.Speichern Ergebnis des SVN-Befehls in Variable

schrieb ich folgendes in der 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 

Und das Ergebnis ist $(svnlook author -t 12-r /root/home/r/REPO)

Anscheinend sind die TXN und REPOS Variablen interpoliert wurden, aber die svnlook author Befehl ausgeführt wurde nicht.

ich andere Möglichkeiten des Schreibens des Befehls, wie

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

1,8 SVN Ich laufe auf Solaris

Antwort

3

In pre-commit, der svnlook Befehl möglicherweise nicht versucht haben, definiert, weshalb Sie erhalten es wie im String-Format.

Sie müssen den Pfad für svnlook durch Ausführen von which svnlook auf Ihrer Kommandozeile herausfinden.

Es wird wieder so etwas wie /nettools/subversion/svn1.8.10/bin/

Jetzt können Sie wie folgt vorgehen:

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

Dann echo "$AUTHOR"