【问题标题】:How to chain Linux commands in .net 5如何在 .net 5 中链接 Linux 命令
【发布时间】: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());

【问题讨论】:

标签: c# .net linux .net-5


【解决方案1】:

找到答案

        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());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2019-03-01
    相关资源
    最近更新 更多