来自C#的Unix命令

时间:2009-01-31 01:50:08

标签: c# unix cross-platform cygwin

是否有Unix shell的实现和作为.Net程序集的命令。这可以是cygwin的包装,也可以是从公共域源构建的独立包装。我真正希望能够使用的命令是wc,tar,cpio,ps,kill,cat,at ...

这样做有多酷(伪代码)

usng cygwin

.....

 Shell myShell = new Shell("cat file1 file2 >> file3");
 myShell.Run(DateTime.Now);

编辑>我可以看到shell out方法正常工作,我过去曾经使用过这种方法。然而,它只是感觉很难看,它是另一个进程运行,它不安全,它需要在客户端机器上进行另一次安装,你必须捣乱构建命令字符串。作为进一步的例子

 Shell myShell = new Shell();
 myShell.Infiles.Add (streamObject);
 myShell.Outfiles.Add (streamObject);

 myShell.Stderr.NewOutput += myErrorLogger();

3 个答案:

答案 0 :(得分:2)

你看过PowerShell了吗?使用Unix命令的许多任务可以是translated into PowerShell

答案 1 :(得分:1)

可能会有类似以下的内容。

Shell myShell = new Shell("c:\cygwin\bin\bash cat file1 file2 >> file3");  
myShell.Run(DateTime.Now);

但是,我没有环境来测试它。

试一试。

答案 2 :(得分:1)

我不知道任何实现,但我认为你所拥有的是一个有趣的想法:)对于某人来说,开发一个可以在自己的控制台中运行的busybox托管版本,这将是一个有趣的项目。可以像示例代码中的.NET程序集一样使用。但这样的事情对很多人来说真的有用吗?