2012-07-04 6 views
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 
+2

часть каталога * имя * является более точным. Сначала это звучало так, как будто вы хотели часть * содержимого * каталога. –

+0

Спасибо. Исправлена. Надеюсь, теперь стало более ясно. – vlad

ответ

3

Вы можете использовать расширение параметров Bash:

PROJECTNAME=${PWD##*/} 

Чтобы получить родительский каталог требует двух шагов:

PROJECTNAME=${PWD%/*} 
PROJECTNAME=${PROJECTNAME##*/} 
+0

Отлично работает, спасибо. – vlad

+0

Я думаю, что проблема заключается в том, чтобы получить конкретный каталог _child_. :/ – sarnold

+0

@ vlad: это именно то, что вам нужно? если это так, пожалуйста, [отметьте его принято] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), чтобы все знали, что это сделано ... Спасибо! – sarnold

1

Попробуйте это:

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

Для всех в тестовых случаях я придумал, он печатает что-то - за исключением каталога /. Так что это не сработает для /. (. Но это не совсем то, что вы хотите сделать в любом случае)

Если это, кажется, работает для вас, то попробуйте это в скрипте:

PROJECTNAME=$(echo $PWD | awk -vFS=/ '{printf "%s",$NF}') 
+2

'PROJECTNAME = $ (echo" $ {PWD ## * /} ")' все, что вам нужно. –

+0

@ Dennis: Ha! Сначала я попробовал эти переменные модификаторы, но не нашел тот, который был после. Ницца. Пожалуйста, добавьте, что в качестве ответа вы больше, чем заслуживаете очков за это. :) – sarnold

+0

Выполнено. Тем не менее, я придумал свой комментарий. Вы не нуждаетесь в подстановке команд и 'echo', когда используете расширение параметра. –

Смежные вопросы