我正在运行一个Perl脚本,在其中我使用命令system
执行SSH
连接。
看起来像这样:
$test_result = '/home/ergaconfigs/sauvegarde-configs/configs/test';
sub ssh_connect {
my $test = system (`ssh -i /home/ergaconfigs/sauvegarde-configs/rsa_keys/key_config_saver -o "StrictHostKeyChecking no" ergaconfigs\@10.252.0.27 "show configuration | display set" > $test_result `);
print "resultat de la commande : $test \n le code d erreur est $!";
}
但是我想确保SSH连接成功。这就是为什么我要查看
system
的返回码的原因。当 SSH连接成功并且文件已正确写入时,输出为:
resultat de la commande : 65280
le code d erreur est
不管ssh连接的结果是什么(网络不可达等),我都有相同的输出。有人可以解释一下为什么吗?
最佳答案
如所写,代码中的反引号是实际运行的ssh
命令的内容,然后从该输出(可能是空的)stdout
的输出将传递给system
命令。
我希望这不是您想要的。如果是这样,请用普通的双引号将反引号替换。然后,您需要更改命令中的所有双引号-单引号应该起作用。