错误"未设置MyVar环境变量"使用SSH.NET执行shell命令时

时间:2015-10-20 14:35:35

标签: c# shell ssh ssh.net

我收到错误:

  

未设置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();

1 个答案:

答案 0 :(得分:0)

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

所以你的环境可能(很可能确实)有所不同。特别是未设置MyVar

解决方案是:

  • 修复启动脚本,即使在非交互式终端上设置MyVar(首选)
  • 修改SSH.NET代码以在SendPseudoTerminalRequest实现中发出.RunCommand请求(我没有对此进行测试)。有关示例,请参阅Shell.Start()