13

我正在尝试自动化我与 Git 构建脚本的交互,但我遇到了以下问题。

这可以从命令行工作:

git clone git@github.xxxx.com:blablabla/reponame.git /Users/myname/dev/myfolder

现在我也想做同样的事情,但来自我的脚本。我有以下内容:

#/bin/bash

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

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

git clone $repository" "$localFolder

这给了我这个错误

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

对此的任何启示将不胜感激

4

1 回答 1

23

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

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

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

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

git clone "git@github.xxxx.com:blablabla/reponame.git /Users/myname/dev/myfolder"

...这与

git clone git@github.xxxx.com:blablabla/reponame.git /Users/myname/dev/myfolder

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

于 2012-06-02T11:52:33.160 回答