在我目前的项目中,我需要从C#应用程序调用Unix shell脚本。我还需要回复脚本是否已成功执行或发生任何错误的响应。
C#程序在Windows机器上运行。我需要连接到Unix机器并执行脚本。
有谁能让我知道如何使用C#完成这项工作?
答案 0 :(得分:4)
这会解决您的问题吗?
sharpSsh - A Secure Shell (SSH) library for .NET
<强>更新强>
有关如何使用该工具的详细信息,请参阅开发人员网站SharpSSH。
更新2
答案 1 :(得分:2)
// Start the child process.
Process p = new Process();
// Redirect the error stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.FileName = "Write500Lines.exe";
p.Start();
// Do not wait for the child process to exit before
// reading to the end of its redirected error stream.
// p.WaitForExit();
// Read the error stream first and then wait.
string error = p.StandardError.ReadToEnd();
p.WaitForExit();
答案 2 :(得分:1)
即使我有同样的问题,我已经用Google搜索了大约1个月的解决方案。
最后,我决定使用plink.exe(putty.exe的命令行版本)连接到unix框并在那里执行脚本。
你必须使用plink到c#进程,我已经尝试过了,这非常有效。
但是现在我面临的问题是当我从c#进程运行脚本时,我无法将参数传递给该脚本。可能会说我不知道如何做到这一点。
此致 -Aakash