bashスクリプトを使用してgitとのやり取りの一部を自動化しようとしています。そのために、すべてのリポジトリをsshして一覧表示し、それらのクローンを作成するスクリプトがあります。スクリプトの一部をここに示します
DIRS=`ssh $u "ls $p"`;
for DIR in $DIRS; do
echo "ssh://$u$p$DIR"
echo "git clone ssh://$u$p$DIR";
git clone ssh://$u$p$DIR
done
引数の例は
-u user@host
と
-p /cygdrive/c/Documents\ and\ Settings/somePath
これは、名前にスペースが含まれているファイルパスで、スペースが多すぎるというエラーをスローするgitclone部分までは正常に機能します。エコーした部分をコピー&ペーストすると
echo "git clone ssh://$u$p$DIR";
その後、それはうまくクローンします。これを引用符で囲もうとしましたが、エラーが発生します
does not appear to be a git repository
私は何が間違っているのですか?
編集1
使用時のエラーgit clone "ssh://$u$p$DIR"
は
fatal: '/cygdrive/c/Documents\ and\ Settings/somePath/repo1' does not appear to be a git repository
fatal: The remote end hung up unexpectedly