.net core Process 类执行 top -n1 | fgrep 'Cpu(s)' 返回空值
时间: 2024-03-05 15:53:00 浏览: 61
linux数据抽取命令
这可能是由于您的命令中使用了管道符号“|”,而Process类默认情况下不支持管道符号。要支持管道符号,您需要将ProcessStartInfo.RedirectStandardOutput属性设置为true,以便从进程的标准输出流中读取输出。另外,您需要将ProcessStartInfo.UseShellExecute设置为false,以便在创建进程时不使用操作系统的Shell。以下是一个示例代码:
```
var startInfo = new ProcessStartInfo
{
FileName = "top",
Arguments = "-n1",
RedirectStandardOutput = true,
UseShellExecute = false
};
using (var process = new Process())
{
process.StartInfo = startInfo;
process.Start();
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
string cpuUsage = output.Split("\n")
.FirstOrDefault(line => line.Contains("Cpu(s)"))
?.Trim();
}
```
注意,这里的“output”变量将包含整个top命令的输出,因此需要使用字符串操作来提取所需的CPU使用率信息。
阅读全文