【发布时间】:2018-08-31 21:40:49
【问题描述】:
我在使用 Process 类在 Linux 系统上传递命令时遇到问题。
我要执行以下命令:rpm2cpio repo.rpm | cpio -divm
我试过了
process.StartInfo.FileName = "rpm2cpio;
rocess.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.Arguments = "repo.rpm | cpio - idmv";
但程序挂起。
同样,我尝试将 rpm2cpio 的输出保存到字符串或输出文件,然后将其作为 cpio 命令的参数传递,但它也挂起。
process.StartInfo.FileName = "cpio";
rocess.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.Arguments = "-idvm < output.txt";
// or
process.StartInfo.Arguments = "-idvm < " + rp2cpio_output;
我可以通过哪些方法来完成这项工作?我看到this 发布了一个解决方案,但它在 Window 的系统上。在 Linux 上如何做同样的事情?
【问题讨论】:
-
|和<是外壳功能。您需要在 C# 中实现它们或使用 shell 来实现