0

我收到一个错误:

未设置 MyVar 环境变量

使用 SSH.NET、C# 执行 shell 命令时。我可以从 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();
4

1 回答 1

0

当您启动非交互式会话(使用RunCommand)时,将运行一组不同的启动脚本和/或采用脚本中的不同路径(基于TTY变量)。

因此,您的环境可能(很可能确实)不同。特别MyVar是未设置。


解决方案是:

  • 修复您的启动脚本以MyVar在非交互式终端上设置偶数(首选)
  • 修改 SSH.NET 代码以SendPseudoTerminalRequest在实现中发出请求.RunCommand(我没有对此进行测试)。参见Shell.Start()示例。
于 2015-10-21T06:32:06.040 回答