Unix команды из C # - PullRequest
       22

Unix команды из C #

2 голосов
/ 31 января 2009

Существует ли реализация оболочки Unix и команд в виде сборки .Net. Это может быть обертка вокруг Cygwin или автономная версия, созданная из общедоступного источника. Команды, которые я действительно хотел бы использовать: wc, tar, cpio, ps, kill, cat, at ...

как здорово было бы это сделать (псевдокод)

usng cygwin

.....

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

Edit> Я вижу, как работает подход оболочки, я сам использовал этот подход в прошлом. Тем не менее, это только кажется уродливым, это еще один запущенный процесс, он не защищен, он требует еще одной установки на клиентских машинах, вы должны обойти командные строки сборки. В качестве дополнительного примера

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

 myShell.Stderr.NewOutput += myErrorLogger();

и т.д.

Ответы [ 3 ]

2 голосов
/ 31 января 2009

Вы смотрели на PowerShell? Многие задачи с использованием команд Unix могут быть переведены в PowerShell .

1 голос
/ 01 февраля 2009

Я не знаю ни одной реализации, но я думаю, что у вас есть интересная идея :) Было бы забавным проектом для кого-то разработать управляемую версию busybox , которая может работать самостоятельно консоль и может быть использована сборкой .NET, как в вашем примере кода. Но будет ли что-то подобное действительно полезным для многих людей?

1 голос
/ 31 января 2009

Возможно что-то вроде следующего.

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

Но у меня нет среды, чтобы проверить это.

Дайте ему попытку.

...