【发布时间】:2018-05-12 20:40:27
【问题描述】:
我有一个逻辑,它将根据服务器列表逐个执行启动服务现在的问题是在成功执行 last server 之后我需要根据状态执行一些操作。如何处理命令等到最后一个服务器执行
请推荐
示例代码。
foreach my $Server_name(@servers)
{
my $command =qq(sudo /bin/su - jenkins -c "ssh scm\@$Server_name ' /bin/sh ${SCRIPT_HOME}/startService.sh'");
print "$command\n";
system($command);
if ($?== 0)
{
do some action
}
}
【问题讨论】:
-
你的意思是“做一些动作”需要等待吗?以便在
foreach循环之后完成操作...? -
是的,“做一些动作”需要等待并根据 foreach 循环中最后执行的命令的状态执行。 @zdim
-
那么就在
foreach之后进行。对于每次迭代,将状态保存在一个变量中(在循环之前声明以便它存在于它之后),因此在循环之后,变量将具有最后一个命令的状态。这就是你的想法吗?