【发布时间】:2014-05-13 15:33:46
【问题描述】:
我正在编写一个 perl 脚本来使用 ssh 登录到服务器并在服务器上执行一些 shell 命令。问题是服务器只能通过首先登录到另一台服务器来访问。 (我正在使用带有 ssh 密钥的无密码登录)。
以下 bash 脚本工作正常,并说明了问题:
#! /bin/bash
server1="login.uib.no"
server2="cipr-cluster01"
ssh "$server1" "ssh $server2 \"echo \\\"\\\$HOSTNAME\\\"\""
它将正确的主机名打印到我的屏幕上:cipr-cluster01。但是,当尝试在 Perl 中做同样的事情时:
my $server1="login.uib.no";
my $server2="cipr-cluster01";
print qx/ssh "$server1" "ssh $server2 \"echo \\\"\\\$HOSTNAME\\\"\""/;
我得到以下输出:login.uib.no。所以我想,perl 脚本的引用存在一些问题..
【问题讨论】: