鉴于任何GitHub仓库urlstring像:
git://github.com/some-user/my-repo.git
要么
[email protected]:some-user/my-repo.git
要么
https://github.com/some-user/my-repo.git
bash从以下任何string中提取存储库名称my-repo的最佳方法是什么? 该解决scheme必须适用于上面指定的所有types的url。
谢谢。
$ url=git://github.com/some-user/my-repo.git $ basename=$(basename $url) $ echo $basename my-repo.git $ filename=${basename%.*} $ echo $filename my-repo $ extension=${basename##*.} $ echo $extension git
我会去basename $URL .git 。
加起来:
获取没有(可选)后缀的url:
url_without_suffix="${url%.*}"
获取存储库名称:
reponame="$(basename "${url_without_suffix}")"
之后获取用户(主机)名称:
hostname="$(basename "${url_without_suffix%/${reponame}}")"
使用正则expression式:/([ /([^/]+)\.git$/