web-dev-qa-db-ja.com

bashスクリプトからのGitクローン

スクリプトを作成するGitとのやり取りを自動化しようとしていますが、次の問題があります。

これはコマンドラインから機能します:

git clone [email protected]:blablabla/reponame.git /Users/myname/dev/myfolder

そして今、私は同じことをしたいと思いますが、私のスクリプトから。私は以下を持っています:

#/bin/bash

repository="[email protected]:blablabla/reponame.git"

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

git clone $repository" "$localFolder

それは私にこのエラーを与えます

GitHub SSHアクセスは一時的に利用できません(0x09)。致命的:リモートエンドが突然ハングアップした

これに関するどんな光でも大歓迎です

12
agatha

もしかして git clone "$repository" "$localFolder"、希望しますか?

ランニング git clone $repository" "$localFolderはかなり異なるものです。

  • どちらの変数も二重引用符で囲まれていないため、その内容は文字列分割され、グロブ展開されます。したがって、空白が含まれている場合(通常、$IFS)、それらは複数の引数になる可能性があり、グロブ(*[...]など)、これらの引数はファイル名で置き換えることができます(または、nullglobシェルオプションが有効になっている場合は、生成された引数リストから単に削除できます)
  • 2つの引数の間のスペースは引用符で囲まれているため、gitに渡される前に1つの引数に結合されます。

したがって、指定した値について、このスクリプトが実行する内容は次のようになります。

git clone "[email protected]:blablabla/reponame.git /Users/myname/dev/myfolder"

...とはかなり異なります

git clone [email protected]:blablabla/reponame.git /Users/myname/dev/myfolder

.../Users/myname/dev/myfolder URLの一部としてのパス。

20
Charles Duffy