gpt4 book ai didi

c# - 如何在 OSX 上使用 C# 运行 shell 脚本?

转载 作者:太空狗 更新时间:2023-10-30 00:33:21 37 4
gpt4 key购买 nike

我想使用 C# 来执行 shell 脚本。基于类似的问题,我得出了一个看起来像这样的解决方案。

System.Diagnostics.Process.Start("/Applications/Utilities/Terminal.app","sunflow/sunflow.sh");

它当前打开终端,然后使用默认应用程序(在我的例子中是 Xcode)打开 shell 文件。无法更改默认应用程序,因为其他用户需要安装此应用程序。

理想情况下,解决方案将允许 shell 文件的参数。

最佳答案

我现在无法在 Mac 上进行测试,但以下代码可以在 Linux 上运行并且应该可以在 Mac 上运行,因为 Mono 与 Microsoft 的核心 .NET 接口(interface)非常接近:

ProcessStartInfo startInfo = new ProcessStartInfo()
{
FileName = "foo/bar.sh",
Arguments = "arg1 arg2 arg3",
};
Process proc = new Process()
{
StartInfo = startInfo,
};
proc.Start();

关于我的环境的一些注意事项:

  • 我专门创建了一个测试目录来仔细检查这段代码。
  • 我在子目录 foo 中创建了一个文件 bar.sh,代码如下:

    #!/bin/sh
    for arg in $*
    do
    echo $arg
    done
  • 我在 Test.cs 中围绕上面的 C# 代码包装了一个 Main 方法,并用 dmcs Test.cs 编译,并用 mono 执行测试.exe.

  • 最终输出为“arg1 arg2 arg3”,三个标记用换行符分隔

关于c# - 如何在 OSX 上使用 C# 运行 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12303563/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com