¿Cómo get una parte del parche donde se encuentra el script?

Me gustaría copyr automáticamente los files comprometidos desde el repository svn a una determinada carpeta con el mismo nombre.

Por ejemplo, tengo svn repository /svn/project1 y después de commit debería poner todos los files en /www/project1 .

Tengo un simple script de project1 post-commit pero no puedo entender cómo get una parte del directory necesario ( 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 

Puede usar la expansión del parámetro Bash:

 PROJECTNAME=${PWD##*/} 

Para get el directory principal se requieren dos pasos:

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

Prueba esto:

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

Para todos los casos de testing que se me ocurrió, imprime algo , con la exception del directory / . Entonces esto no funcionará para / . (Pero eso no es exactamente algo que quieras hacer de todos modos).

Si esto parece funcionar para usted, intente esto en su secuencia de commands:

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