我正在开发一个需要向远程服务器发送命令的应用程序。使用大量的 SSH 客户端库发送命令很容易。
但是,我希望在每个命令之间保留 shell 状态(即当前工作目录、环境变量等)。我见过的所有客户端库都没有这样做。例如,以下是不符合我要求的代码示例:
use Net::SSH::Perl;
my $server = Net::SSH::Perl->new($host);
$server->login($user, $pass);
$server->cmd('cd /var');
$server->cmd('pwd'); # I _would like_ this to output /var
在发送命令之间还会执行其他任务,因此组合命令$server->cmd('cd /var; pwd')
是不可接受的。