Я работаю над приложением, которое должно отправлять команды на удаленные серверы. Отправка команд достаточно проста благодаря множеству клиентских библиотек SSH.
Однако мне бы хотелось, чтобы между каждой командой было сохранено состояние оболочки (т. Е. Текущий рабочий каталог, переменные среды и т. Д.). Все клиентские библиотеки, которые я видел, не делают этого. Например, ниже приведен пример кода, который не делает то, что я хочу:
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')
, недопустимо.