从C#远程调用unix shell脚本

时间:2011-06-02 14:52:53

标签: c# shell unix

在我目前的项目中,我需要从C#应用程序调用Unix shell脚本。我还需要回复脚本是否已成功执行或发生任何错误的响应。

C#程序在Windows机器上运行。我需要连接到Unix机器并执行脚本。

有谁能让我知道如何使用C#完成这项工作?

3 个答案:

答案 0 :(得分:4)

这会解决您的问题吗?

sharpSsh - A Secure Shell (SSH) library for .NET

<强>更新

有关如何使用该工具的详细信息,请参阅开发人员网站SharpSSH

更新2

  • 将开发者网站的链接更改为已存档的链接。

答案 1 :(得分:2)

使用System.Diagnostics.Process

执行此操作的简单方法

// 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