在我的当前项目中,我需要从C#应用程序调用Unix shell脚本。我还需要获取响应,以便了解脚本是否成功执行或是否发生任何错误。
C#程序正在Windows机器上运行。我需要连接到Unix机器并执行脚本。
请问有人知道如何使用C#完成这个任务吗?
C#程序正在Windows机器上运行。我需要连接到Unix机器并执行脚本。
请问有人知道如何使用C#完成这个任务吗?
这会解决你的问题吗?
sharpSsh - 一个用于.NET的安全外壳(SSH)库
更新
有关如何使用该工具的更多信息,请参考开发人员网站上的SharpSSH。
更新2
// 启动子进程。
Process p = new Process();
// 重定向子进程的错误流。
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.FileName = "Write500Lines.exe";
p.Start();
// 在读取重定向的错误流之前不等待子进程退出。
// p.WaitForExit();
// 先读取错误流,然后再等待。
string error = p.StandardError.ReadToEnd();
p.WaitForExit();
我也遇到了同样的问题,花了大约一个月的时间在谷歌上寻找解决方案。
最终,我决定使用plink.exe(putty.exe的命令行版本)连接到Unix服务器并在那里执行脚本。
你必须通过c#进程使用plink,我已经尝试过了,这非常有效。
但是现在我面临的问题是,当我从c#进程运行脚本时,我无法将参数传递给该脚本。可能可以说我不知道如何做到这一点。
祝好, -Aakash