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

本文关键字:执行 NET shell 命令 SSH 环境变量 设置 MyVar | 更新日期: 2023-09-27 18:18:27

提示错误:

MyVar环境变量未设置

使用SSH执行shell命令时。净,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();

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

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

所以您的环境可能(很可能)不同。特别是没有设置MyVar


解决方案是:

  • 修复你的启动脚本设置MyVar即使在非交互式终端(首选)
  • 修改SSH。. NET代码在.RunCommand实现中发出SendPseudoTerminalRequest请求(我没有测试这个)。参见Shell.Start()