我有一个 perl 脚本,它通过 SSH 在某些 PC 上远程运行命令。所以我想将所有电脑上的时间设置为相同。PC 是基于 linux 的系统,perl 脚本使用另一个 .txt 文件,该文件具有要执行的命令。但是当我运行 perl 脚本时,出现以下错误:
Command = date --set "27 SEP 2012 19
sh: -c: line 0: unexpected EOF while looking for matching `"'
sh: -c: line 1: syntax error: unexpected end of file
perl 脚本工作正常,因为我尝试了另一个命令并给出了结果。那么什么可能导致这个错误。
perl代码是:
#!/usr/bin/perl
open (MYFILE,'HostIPWithCmd.txt');
$i=0;
@IPs=<MYFILE>;
foreach (@IPs) {
chomp;
($EthIP,$Cmd)= split(":");
if($EthIP!=~ ("#"))
{
push(@hostIP,$EthIP);
push(@destCmd,$Cmd);
}
else
{
push(@hostIP,"$EthIP");
push(@destCmd,$Cmd);
}
}
$i=0;
foreach my $host (@hostIP)
{
if($host !=~ ("#"))
{
my @cmds= split(/,/,$destCmd[$i]);
print "\n\nCommands For $host = $destCmd[$i]\n";
foreach my $command (@cmds)
{
print "\n*************************************";
print "\nCommand = $command \n\n";
system("ssh -o ConnectTimeout=10 $host $command");
}
print "\n***** End Of Host : $host *****\n";
print "************************************************************\n\n";
}
$i++;
}
和 HostIPWithCmd.txt
10.20.146.97:date --set "27 SEP 2012 19:00:00"
提前致谢。