我正在做一个函数,在我的bash配置文件中,克隆一个git存储库,进入创建的目录并(可选)结帐到提供的brach。
守则是:
# Clone repository from git, enter in it end checkout to provided branch (default master)
function clone_with_branch () {
g clone $1
cd "$1" | cut -f 2 -d '/' | cut -f 1 -d '.'
if [ "$2" != "null" ]; then
g co "$2"
fi
}
但是,让我说我在命令行中写这个:
clone_with_branch git@github.com:somepage/someproject.git
它给了我信息:
bash: cd: git@github.com:somepage/someproject.git: No such file or directory
任何人都知道我做错了什么?
P.S:如果你用cd(用于测试)切换cd命令,它会向你打印正确的目录......
答案 0 :(得分:3)
你正试图进入$ 1然后将结果传递给cut。您想要cd到剪切的结果:
cd `echo "$1" | cut -f 2 -d '/' | cut -f 1 -d '.'`
(注意反引号)