C# ASP.NET核心API在linux服务器上执行bash命令
我对ASP.NET核心完全是新手 我想向承载ASP.NET核心API的Linux服务器发送GET请求,以执行一些bash命令并在GET响应中返回给定的输出 我发现了一个类似的问题:但我不确定答案是否真的解决了我的问题,也不知道如何使用这个软件包 是否有解决此问题的方法,例如: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
[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我不知道如何使用这个软件包