我正在try 为SVN编写一个post-commit钩子,它托管在我们的开发服务器上.我的目标是try 将提交项目的副本自动签出到服务器上托管该项目的目录.但是,我需要能够读取传递给脚本的目录字符串中的最后一个目录,以便签出到项目所在的同一子目录.

例如,如果我向项目"example"提交SVN,我的脚本将"/usr/local/SVN/repos/example"作为第一个参数.我只需要在字符串末尾加上"example",然后用另一个字符串连接它,这样我就可以签出到"/server/root/example",并立即看到更改.

推荐答案

basename不会删除路径的目录前缀:

$ basename /usr/local/svn/repos/example
example
$ echo "/server/root/$(basename /usr/local/svn/repos/example)"
/server/root/example

Linux相关问答推荐

使用awk以相同的时间戳重新排列

Aarch64在Linux上是否有红色区域,如果有,是16个字节还是128个字节?

如何告诉链接器不要在链接的共享库中查找某些符号?

在Linux中随机化txt文件但保证不重复行

std::chrono::time_zone 在不同操作系统上不可用

使用sed命令将记录中的字符串替换为DD-MMM-YYYY日期格式

如何修复 script(1) 实用程序输出的换行符?

在 linux 中插入带有 sed 命令的文件的行

如何拆分多个分隔符但将它们保留在方括号之间?

根据文件名对目录中的文件进行 chgrp

什么是`quote`命令?

ld-linux.so.2 和 linux-gate.so.1 是什么?

为什么我不能将 Unix Nohup 与 Bash For 循环一起使用?

如何构建在 Android 上运行的本机(命令行)可执行文件?

如何使用 Ansible 等待服务器重启?

给定一个 linux 用户名和密码,我如何测试它是否是有效帐户?

ldconfig 错误:使用 Linux 加载程序时不是符号链接

如何通过命令提示符判断 Linux 中的 BIOS 版本或名称?

rename() 是原子的吗?

适用于 Windows、Linux、MacOS X 的跨平台脚​​本