我正在尝试编写一个Perl脚本来执行git操作。我在运行它的时候在脚本中得到错误,它似乎是与git克隆行。任何帮助都很感激。
#!/usr/bin/perl
use strict;
use warnings;
my $url = "git\@devbitbucket.ethos.com:7999";
print "What is the project asset code? ";
chomp(my $projectcode = <> );
print "$projectcode\n";
print "What is the repository name? ";
chomp(my $reponame = <> );
print "$reponame\n";
chdir "cd /export/appl/bbdev/scripts/files/";
chdir;
print "git clone ssh://$url/$projectcode/$reponame.git\n";
system( 'git clone ssh://$url/$projectcode/$reponame.git $reponame' );
#$reponame =~ s/\..*//s;
chdir "cd $reponame";
chdir;
system( 'cp -p /export/appl/bbdev/scripts/files/* .' );
system( 'git status' );
system( 'git add -A && git commit -m "Default Repository Initial Files" ');
system( 'git push --all' );
system( 'git status' );
exit 0;
错误
git clone ssh://git@devbitbucket.ethos.com:7999/mikt/test2.git
fatal: No directory name could be guessed.
Please specify a directory on the command line
fatal: not a git repository (or any parent up to mount point /appl)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
1条答案
按热度按时间lqfhib0f1#
一些问题立即跳出来
字符串插值未发生
此行使用单引号括起的字符串。单引号字符串不插入Perl变量--在本例中为
$url
、$projectcode
等。您需要使用双引号来实现这一点
错误使用
chdir
有几个地方使用参数调用
chdir
。两者都在默默地失败(如果你检查了返回代码,这将是显而易见的)。当给
chdir
函数一个参数时,它必须是一个目录的名称。在这两个示例中都传递了前缀为“cd
“的字符串。这些是不存在的目录。你想要这个这个
使用不带任何参数的
chdir
意味着“转到我的主目录”(有关更多详细信息,请参见chdir)。你根本不需要这些线。