c# - 从 C# 在 Azure Bash 中执行命令
问题描述
我有一个需要通过 C# 程序管理的 Azure 环境。为了正确管理环境,我需要执行一些 .sh 文件。我想制定一个例程,以便在一定时间后执行命令并使用一些参数。目前我正在从命令行手动执行 .sh 文件。
我正在寻找一种通过 C# 调用 .sh 文件的方法。但是我找不到任何关于此的文档。这可能吗?
解决方案
在 C# 中没有执行 linux 命令的“exec”命令。相反,您可以使用“ System.Diagnostics.ProcessStartInfo
”和“ System.Diagnostics.Process
”。由于您需要运行 shell 命令,因此无法使用 cmd ,因此您可以使用 cygwin 作为应用程序来执行它们。
因此这段代码有效,
ProcessStartInfo procStartInfo = new ProcessStartInfo(@"C:\cygwin\bin\bash.exe",command);
接着
proc.StartInfo = procStartInfo;
proc.Start();
完整的代码如下:
private void runCom(string command)
{
ProcessStartInfo procInfo = new ProcessStartInfo("cmd", "/c" + command);
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
Process proc = new Process();
proc.StartInfo = startInfo;
proc.Start();
proc.WaitForExit();
}
希望能帮助到你。
推荐阅读
- python - AttributeError:“列表”对象在 Python 上没有属性“问题”
- operating-system - 在具有分页内存管理系统的系统上运行的应用程序可以直接访问物理内存吗?
- java - 通过意图移动到下一个活动的问题
- sql - 显示具有一对多关系的两个表中的多行数据
- java - 创建可以使视频方向适应手机方向的视频播放器
- wordpress - 如何以编程方式初始化(许多)ACF 字段组
- arrays - 从 JsonReader VB.net 读取 JArray 时出错
- python - PyTorch:RuntimeError:张量 a(224)的大小必须与非单维 3 的张量 b(244)的大小相匹配
- excel - 如何修复 VBA 中的“编译错误:对于没有下一步”
- c# - 在 Startup 类的 ConfigureServices 方法中注册要使用的服务