来自bash脚本的Git克隆

aga*_*tha 11 git ssh bash git-clone

我试图自动化我与Git构建脚本的交互,我遇到了以下问题.

这可以从命令行工作:

git clone git@github.xxxx.com:blablabla/reponame.git /Users/myname/dev/myfolder
Run Code Online (Sandbox Code Playgroud)

现在我想做同样的事情,但是从我的剧本开始.我有以下内容:

#/bin/bash

repository="git@github.xxxx.com:blablabla/reponame.git"

localFolder="/Users/myname/dev/myfolder"

git clone $repository" "$localFolder
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误

GitHub SSH访问暂时不可用(0x09).致命:远程端意外挂断

任何关于此的亮点将非常感激

Cha*_*ffy 20

你的意思是git clone "$repository" "$localFolder",我希望?

跑步git clone $repository" "$localFolder是完全不同的:

  • 因为这两个变量都不在双引号内,所以它们的内容是字符串拆分和全局扩展的; 因此,如果它们含有空格(通常,内的字符$IFS)时,它们可能成为多个参数,并且如果它们包含水珠(*,[...]等),这些参数可以与文件名,代替(或简单地除去从所生成的参数列表,如果nullglob壳选项已启用)
  • 因为引用了两个参数之间的空格,所以在传递给它们之前它们被组合成一个参数git.

因此,对于您提供的值,此脚本运行的将是:

git clone "git@github.xxxx.com:blablabla/reponame.git /Users/myname/dev/myfolder"
Run Code Online (Sandbox Code Playgroud)

......这是完全不同的

git clone git@github.xxxx.com:blablabla/reponame.git /Users/myname/dev/myfolder
Run Code Online (Sandbox Code Playgroud)

...因为它将/Users/myname/dev/myfolder路径作为URL的一部分.