C# 调用 Linux 系统命令
public static string Exceute(string command,string arg)
{
// 创建ProcessStartInfo对象,设置命令行参数和执行路径
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = command, // 指定要执行的Shell解释器
Arguments = arg, // 传递命令作为参数
UseShellExecute = false, // 不使用Shell执行
RedirectStandardOutput = true, // 将标准输出重定向到Process.StandardOutput属性
RedirectStandardInput = true, // 将标准输入重定向到Process.StandardInput属性
RedirectStandardError = true, // 将标准错误重定向到Process.StandardError属性
CreateNoWindow = true // 不创建新的窗口
};
// 创建Process对象,并启动进程
using (Process process = new Process { StartInfo = startInfo })
{
Console.WriteLine("执行命令:" + command +" 参数:" + arg);
process.Start();
// 读取标准输出和标准错误输出
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
// 等待进程执行完成
process.WaitForExit();
// 输出结果
Console.WriteLine("Output:");
Console.WriteLine(output);
if (string.IsNullOrEmpty(error))
{
Console.WriteLine("Error:");
Console.WriteLine(error);
}
return output + error;
}
}
string chmodCmdStr = "chmod +x ./AEConsole_GatewayService";
Process process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = "/bin/bash";
process.StartInfo.Arguments = "-c \"" + chmodCmdStr + " \"";
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WorkingDirectory = deCompressDir;
process.Start();
process.WaitForExit();
https://www.cnblogs.com/stulzq/p/9074965.html
https://blog.csdn.net/Smooth_Sailing_/article/details/133900812
https://developers.redhat.com/blog/2019/10/29/the-net-process-class-on-linux#not_supported_on_linux