【发布时间】:2018-02-09 07:22:19
【问题描述】:
我有一个 Perl 脚本,它使用 openssh 访问远程机器并在该远程机器上执行 Perl 脚本。
现在的问题是需要在远程机器上执行的脚本是一个交互式脚本,并且在执行过程中需要通过 STDIN 进行一些输入。
有人可以帮我实现这个场景吗?
我正在放置到目前为止我已经实现的代码的sn-p。
my $ssh = Net::OpenSSH->new("$host", timeout => 60) or die "unable to connect to remote host: ". $ssh->error;
$ssh->system("chmod 755 abc.pl");
my $output=$ssh->capture("./abc.pl") or die "remote command failed: " . $ssh->error;
【问题讨论】:
-
capture为此提供了选项stdin_data。如果交互很复杂,您可能更喜欢使用 Expect。阅读模块文档!
标签: perl