gpt4 book ai didi

perl - 如何以编程方式获取有状态的 ssh shell session ?

转载 作者:行者123 更新时间:2023-12-04 15:47:49 24 4
gpt4 key购买 nike

我正在开发一个需要向远程服务器发送命令的应用程序。使用过多的 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')是不能接受的。

最佳答案

Net::SSH::Expect做你想做的事,尽管“期望”方式并不完全可靠,因为它会解析你的命令的输出并试图检测何时再次出现 shell 提示。

关于perl - 如何以编程方式获取有状态的 ssh shell session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6767159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com