1

我想自动将提交的文件从 svn 存储库复制到同名的某个文件夹。

例如,我有 svn 存储库/svn/project1,提交后它应该将所有文件放到/www/project1.

我有一个简单的提交后挂钩脚本,但不明白如何获取必要目录的一部分(project1):

#!/bin/sh
PROJECTNAME=                    # how get it?
rm -rf /www/$PROJECTNAME
mkdir /www/$PROJECTNAME
/usr/bin/svn export --force file:///svn/$PROJECTNAME/trunk /www/$PROJECTNAME
4

2 回答 2

3

您可以使用 Bash 参数扩展:

PROJECTNAME=${PWD##*/}

获取父目录需要两个步骤:

PROJECTNAME=${PWD%/*}
PROJECTNAME=${PROJECTNAME##*/}
于 2012-07-04T01:35:21.767 回答
1

尝试这个:

echo $PWD | awk -vFS=/ '{printf "%s",$NF}'

对于我想出的所有测试用例,它都会打印一些东西/——目录除外。所以这对/. (但这并不是你想要做的事情。)

如果这似乎对您有用,请在您的脚本中尝试:

PROJECTNAME=$(echo $PWD | awk -vFS=/ '{printf "%s",$NF}')
于 2012-07-04T01:26:28.290 回答