Ошибка "Переменная окружения 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() для примера.
Другие вопросы по тегам