2009-01-31 102 views
2

是否有Unix shell和命令作爲.Net程序集的實現。這可能是cygwin的包裝器,也可能是從公共領域源代碼構建的獨立器件。那種命令我真的希望能夠使用的廁所,焦油的cpio,PS,殺人,貓,在...來自C#的Unix命令

如何的酷會是這樣做(僞代碼)

USNG cygwin的

.....

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

編輯>我可以看到掏出方式工作,我已經使用了接近自己的過去。然而,它只是感覺難看,它是另一個運行的過程,它不安全,它需要在客戶端機器上進行另一次安裝,你必須在構建命令字符串周圍進行調試。作爲又一個例子

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

myShell.Stderr.NewOutput += myErrorLogger(); 

+0

我不明白你是否要求一個能夠像大多數shell一樣的I/O重定向的類(如你的代碼演示的那樣),或者是用於執行普通Unix程序的代碼(正如你的問題所說) 。不要指望兩者都有,除非它非常專業化。 – 2009-01-31 20:28:52

回答

1

可能類似於以下內容會做。

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

但是,我沒有一個環境來測試它。

試試看。

1

我不知道任何實現,但我認爲你有什麼是一個有趣的想法:)將是一個有趣的項目有人開發busybox的管理版本,可以在自己的控制檯運行,並可以通過一個.NET程序集,就像你的示例代碼。但是像這樣的東西對很多人來說真的有用嗎?

+0

有趣的是,這將是一個很好的起點。至於有用,我第一個這樣的問題,比如10年前說的是一個窗口框中的大文件。即使原生的C代碼也無法與wc的性能相匹配,所以我砍掉了MKS工具包的包裝,那時它仍是一個混亂。 – MrTelly 2009-02-02 00:34:24