tj1*_*111 198 linux svn bash shell
我正在尝试为SVN编写一个post-commit挂钩,它挂在我们的开发服务器上.我的目标是尝试自动将已提交项目的副本签出到服务器上托管的目录.但是,我需要能够只读取传递给脚本的目录字符串中的最后一个目录,以便签出到托管我们项目的同一子目录.
例如,如果我对项目"example"进行SVN提交,我的脚本会将"/ usr/local/svn/repos/example"作为其第一个参数.我需要在字符串的末尾添加"示例",然后用另一个字符串连接它,这样我就可以签出到"/ server/root/example"并立即查看更改.
sth*_*sth 308
basename
会删除路径的目录前缀:
$ basename /usr/local/svn/repos/example
example
$ echo "/server/root/$(basename /usr/local/svn/repos/example)"
/server/root/example
Run Code Online (Sandbox Code Playgroud)
Jin*_*Yao 81
可以使用以下方法获取路径名的任何路径:
pathname=a/b/c
echo $(basename $pathname)
echo $(basename $(dirname $pathname))
echo $(basename $(dirname $(dirname $pathname)))
Run Code Online (Sandbox Code Playgroud)
输出:
c
b
a
Run Code Online (Sandbox Code Playgroud)
Pau*_*ce. 71
Bash可以获取路径的最后一部分而无需调用外部basename
:
subdir="/path/to/whatever/${1##*/}"
Run Code Online (Sandbox Code Playgroud)