C# “错误”;未设置MyVar环境变量";使用SSH.NET执行shell命令时
我得到一个错误: 未设置MyVar环境变量 使用SSH.NET执行shell命令时,C#。我可以从PuTTY执行相同的命令,一切都很好 我的密码是C# “错误”;未设置MyVar环境变量";使用SSH.NET执行shell命令时,c#,shell,ssh,ssh.net,C#,Shell,Ssh,Ssh.net,我得到一个错误: 未设置MyVar环境变量 使用SSH.NET执行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 outpu
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
请求(我没有测试这个)。有关示例,请参见sendpeudoterminalrequest
Shell.Start()
MyVar
?或者,您知道变量应该具有什么值,以便您可以尝试手动设置它吗?我能够解决这一问题—使用PLink命令行exe作为PLink-batch
,后跟凭据和命令/path1/script.sh MyArgument
。它工作得很好。如果没有别的办法,我将继续采用这种方法。但我仍然更喜欢CreateShell选项。您是否有任何示例代码可以帮助我创建shell、运行命令以及以文本形式读取输出流?