.Net Core 程序在Raspberry Pi 3B+树莓派的Raspbian系统中执行Shell脚本

.Net Core 程序在Raspberry Pi 3B+树莓派的Raspbian系统中执行Shell脚本

现在需要C#程序中执行一个跟NTP服务器同步的脚本,后参考了这篇文章 .NET Core 跨平台执行命令、脚本,使用ProcessStartInfo、Process 类实现了功能。

1.编写shell脚本

注意:请不要在windows系统下创建shell脚本,我是在linux环境下创建了shell文件夹,然后在shell文件夹下创建了timeSynchronization.sh文件,并赋予了 777 权限。
timeSynchronization.sh文件内容如下:

#!/bin/bash
sudo ntpdate 10.170.1.71

2.编写C#代码

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace SetLinuxShellDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "shell/timeSynchronization.sh";
           
            //创建一个ProcessStartInfo对象 使用系统shell 指定命令和参数 设置标准输出
            var psi = new ProcessStartInfo(fileName) { RedirectStandardOutput = true };
            //启动
            var proc = Process.Start(psi);
            if (proc == null)
            {
                Console.WriteLine("Can not exec.");
            }
            else
            {
                Console.WriteLine("-------------Start read standard output--------------");
                //开始读取
                using (var sr = proc.StandardOutput)
                {
                    while (!sr.EndOfStream)
                    {
                        Console.WriteLine(sr.ReadLine());
                    }

                    if (!proc.HasExited)
                    {
                        proc.Kill();
                    }
                }
                Console.WriteLine("---------------Read end------------------");
                Console.WriteLine($"Exited Code : {proc.ExitCode}");
            }

            Console.ReadKey();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值