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();
当您启动一个非交互式会话(使用RunCommand
)时,将运行一组不同的启动脚本和/或脚本中的不同路径(基于TTY
变量)。
所以您的环境可能(很可能)不同。特别是没有设置MyVar
。
解决方案是:
- 修复你的启动脚本设置
MyVar
即使在非交互式终端(首选) - 修改SSH。. NET代码在
.RunCommand
实现中发出SendPseudoTerminalRequest
请求(我没有测试这个)。参见Shell.Start()
。