我收到错误:
未设置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();
答案 0 :(得分:0)
当您启动非交互式会话(使用RunCommand
)时,将运行一组不同的启动脚本和/或采用脚本中的不同路径(基于TTY
变量)。
所以你的环境可能(很可能确实)有所不同。特别是未设置MyVar
。
解决方案是:
MyVar
(首选)SendPseudoTerminalRequest
实现中发出.RunCommand
请求(我没有对此进行测试)。有关示例,请参阅Shell.Start()
。