我正在尝试使用 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
这适用于名称中包含空格的文件路径,直到 git clone 部分引发关于太多空格的错误。如果我复制并粘贴由
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