【发布时间】:2021-09-21 21:07:21
【问题描述】:
有什么方法可以像我在终端中那样使用 .NET 5 Process 类来使用链式 linux 命令?
$ cat /proc/meminfo | grep MemTotal
上面的命令会返回系统的内存,我可以用“/proc/meminfo”作为参数运行cat,但是我怎么能一次完成呢?
编辑:尝试将文件名设置为“/bin/bash”并将“cat /proc/meminfo | grep MemTotal”作为参数传递,但它仍然不起作用,抛出错误/usr/bin/cat: /usr/bin/cat: cannot execute binary file
编辑 2:找到解决方案,这是有效的代码
Process process = new Process();
process.StartInfo.FileName = "/bin/sh";
string cmd = "cat /proc/meminfo | grep MemTotal";
process.StartInfo.Arguments = $"-c \"{cmd}\"";
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.WaitForExit();
Console.WriteLine(process.StandardOutput.ReadToEnd());
【问题讨论】:
-
@AliK 没有帮助,抱歉,我知道如何使用进程类运行命令,我面临的唯一问题是在 Linux 中链接命令