C# ASP.NET核心API在linux服务器上执行bash命令

C# ASP.NET核心API在linux服务器上执行bash命令,c#,asp.net,linux,api,asp.net-core,C#,Asp.net,Linux,Api,Asp.net Core,我对ASP.NET核心完全是新手 我想向承载ASP.NET核心API的Linux服务器发送GET请求,以执行一些bash命令并在GET响应中返回给定的输出 我发现了一个类似的问题:但我不确定答案是否真的解决了我的问题,也不知道如何使用这个软件包 是否有解决此问题的方法,例如: [HttpGet] public async Task<ActionResult<IEnumerable<TodoItem>>> GetTodoItems() { bashOut

我对ASP.NET核心完全是新手

我想向承载ASP.NET核心API的Linux服务器发送GET请求,以执行一些bash命令并在GET响应中返回给定的输出

我发现了一个类似的问题:但我不确定答案是否真的解决了我的问题,也不知道如何使用这个软件包

是否有解决此问题的方法,例如:

[HttpGet]
public async Task<ActionResult<IEnumerable<TodoItem>>> GetTodoItems()
{
    bashOutput = BASHCOMMAND(whoami);
    return await bashOutput;
}  
[HttpGet]
公共异步任务GetTodoItems()
{
bashOutput=BASHCOMMAND(whoami);
返回等待输出;
}  
或者有没有更好的方法在我的linux服务器上执行命令并通过API返回值?它不必是ASP.NET内核。

试试这个

 public static string Run(string cmd, bool sudo = false)
    {
        try
        {
            var psi = new ProcessStartInfo
            {
                FileName = "/bin/bash",
                Arguments = (sudo ? "sudo " : "") + "-c '" + cmd + "'",
                RedirectStandardOutput = true,
                UseShellExecute = false,
                CreateNoWindow = true,
                RedirectStandardError = true,
                RedirectStandardInput = true,
            };

            Process proc = new Process() { StartInfo = psi, };
            proc.Start();
            string result = proc.StandardOutput.ReadToEnd();
            proc.WaitForExit();

            if (string.IsNullOrWhiteSpace(result))
            {
                Console.WriteLine("The Command '" + psi.Arguments + "' endet with exitcode: " + proc.ExitCode);
                return proc.ExitCode.ToString();
            }
            return result;
        }
        catch (Exception exc) 
        {
            Debug.WriteLine("Native Linux comand failed: " + cmd);
            Debug.WriteLine(exc.ToString()); 
        }

        return "-1";
    }

您是否尝试了在另一个链接上找到的解决方案?你在那里面临什么问题?@ChetanRanpariya我不知道如何使用这个软件包