📜  检查 shell 命令是否成功 - C# (1)

📅  最后修改于: 2023-12-03 14:55:42.699000             🧑  作者: Mango

检查 Shell 命令是否成功 - C#

在 C# 中执行 Shell 命令是一个很常见的需求,但是我们如何判断 Shell 命令是否成功返回了呢?本文将介绍如何在 C# 中检查 Shell 命令的返回状态。

使用 Process 类执行 Shell 命令

在 C# 中可以使用 Process 类执行 Shell 命令。我们可以使用 Process.Start 方法启动一个新的进程来执行 Shell 命令。以下是一个示例:

using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        Process process = new Process();
        process.StartInfo.FileName = "/bin/bash";
        process.StartInfo.Arguments = "-c \"echo hello world\"";
        process.StartInfo.UseShellExecute = false;
        process.Start();
        process.WaitForExit();

        if (process.ExitCode == 0) {
            Console.WriteLine("Shell 命令执行成功");
        } else {
            Console.WriteLine("Shell 命令执行失败,错误码:" + process.ExitCode);
        }
    }
}

在上面的示例中,我们使用 Process.StartInfo.FileName 属性指定了要执行的 Shell 的路径。这里使用的是 /bin/bash,如果你的 Shell 路径不同,需要相应修改。

Process.StartInfo.Arguments 属性指定了要执行的命令和参数。-c 参数告诉 Shell 命令解释器需要执行的命令是后面的字符串,这里是 echo "hello world"

Process.StartInfo.UseShellExecute 属性设置为 false,表示不使用操作系统外壳程序执行进程。在 Linux 上,需要设置为 false 才能正确执行 Shell 命令。

process.WaitForExit() 方法可以等待进程执行完毕。在本示例中,我们需要等待进程执行完毕才能检查返回状态。

最后,我们根据 process.ExitCode 属性判断 Shell 命令是否执行成功。如果返回值为 0,则表示成功。否则表示发生了错误,错误码就是 ExitCode 属性的值。

总结

本文介绍了在 C# 中如何检查 Shell 命令的返回状态。我们可以使用 Process 类启动一个新的进程来执行 Shell 命令,并根据进程的返回值判断命令是否成功执行。