Ошибка "Переменная окружения MyVar не установлена" при выполнении команды оболочки с использованием SSH.NET
Я получаю ошибку:
Переменная окружения MyVar не установлена
при выполнении команды оболочки с использованием SSH.NET, C#. Я могу выполнить ту же команду из PuTTY, и все работает отлично.
Код у меня есть
var client = new SshClient("myhost.mydomain", "user", "password");
client.Connect();
var cmd = "/path1/script.sh MyArgument";
var sshCommand = client.RunCommand(cmd);
var output = sshCommand.Result;
Console.WriteLine(output);
client.Disconnect();
1 ответ
Когда вы начинаете неинтерактивный сеанс (используя RunCommand
), другой набор сценариев запуска выполняется и / или различные пути в сценариях (на основе TTY
переменная).
Таким образом, ваше окружение может (скорее всего, отличается). Особенно MyVar
не установлен.
Решения:
- Исправьте ваши сценарии запуска, чтобы установить
MyVar
даже на неинтерактивных терминалах (предпочтительно) - Изменить код SSH.NET для выдачи
SendPseudoTerminalRequest
запрос в.RunCommand
реализация (я не проверял это). УвидетьShell.Start()
для примера.