Gicu Mironica
Gicu Mironica

Reputation: 635

Exectute a Linux Shell command from ASP.NET Core 3 app

My question is literally, how do I execute a Shell command from my application. There is a similar Post, but that shows how to execute a script file and requires the path to that file.

var process = new Process()
    {
        StartInfo = new ProcessStartInfo
        {
            FileName = command, // Path required here
            Arguments = args,
            RedirectStandardOutput = true,
            RedirectStandardError = true,
            UseShellExecute = false,
            CreateNoWindow = true,
        }
    };
process.Start();

Why I want to pass the command as a string?

Because I want to interpolate it. Otherwise, I would have to create a script, with some input parameters. Since I'm not that good with Shell, I prefer the easy way.

Upvotes: 4

Views: 6045

Answers (1)

Lex Li
Lex Li

Reputation: 63254

Assume you want to run echo hello in bash, then

    Process process = new Process
    {
        StartInfo = new ProcessStartInfo
        {
            FileName = "bash",
            RedirectStandardInput = true,
            RedirectStandardOutput = true,
            RedirectStandardError = true,
            UseShellExecute = false
        }
    };
    process.Start();
    await process.StandardInput.WriteLineAsync("echo hello");
    var output = await process.StandardOutput.ReadLineAsync();
    Console.WriteLine(output);

Upvotes: 6

Related Questions