52ll.org
52ll.org

使用c#写shell脚本是怎样一种体验

创建一个项目

dotnet new console --name InstallCommand

进入项目目录

cd InstallCommand

安装两个可能会用得到的包
第一个包可以帮助我们解析 −−key value 的参数
第二个包可以代我们执行 linux 的各项命令

dotnet add package FluentArgs
dotnet add package CliWrap

以下代码会检测文件 /usr/bin/curl 是否存在,如果不存在,则调用 apt-get 安装 curl,并将 apt-get 的输出打印

namespace InstallCommand
{
    using System;
    using System.IO;
    using CliWrap;
    using System.Diagnostics;
    using System.Threading.Tasks;
    using CliWrap.Buffered;
    using FluentArgs;

    public static class Program
    {
        public static async Task<string> InstallPackage(string name)
        {
            var result = await Cli.Wrap("/usr/bin/apt-get")
                .WithArguments($"install -y {name}")
                .WithWorkingDirectory("/root")
                .ExecuteBufferedAsync();

            return result.StandardOutput;
        }

        public static void Main(string[] args)
        {
            if (!File.Exists("//usr//bin//curl"))
            {
                Console.WriteLine("curl doesn't exist.");
                Task<string> str = InstallPackage("curl");
                str.Wait();
                Console.WriteLine($"print content:{str.Result}");
            }
            else
            {
                Console.WriteLine("curl exist.");
            }
        }
    }
}

发表回复

textsms
account_circle
email

52ll.org

使用c#写shell脚本是怎样一种体验
创建一个项目 dotnet new console --name InstallCommand 进入项目目录 cd InstallCommand 安装两个可能会用得到的包 第一个包可以帮助我们解析 −−key value 的参数 第二个…
扫描二维码继续阅读
2023-03-09