您需要从用 C# .net core 2.2 编写的程序运行用 Bash 编写的脚本。
cd /home/jman/myapp/
。/测试
在 C# 程序中,我通过启动命令(帮助程序)来完成:
public string RunBashCommand(string cmd, Dictionary<string, string> environmentVariables = null)
{
using (var process = new Process())
{
process.StartInfo = new ProcessStartInfo
{
FileName = "/bin/bash",
Arguments = $"-c \"{cmd}\"",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
if (environmentVariables != null)
foreach (var variable in environmentVariables)
{
process.StartInfo.EnvironmentVariables[variable.Key] = variable.Value;
}
process.Start();
var result = process.StandardOutput.ReadToEnd().Trim('\n').Trim('\r');
process.WaitForExit();
return result;
}
}
和调用本身:
private void LoadDevice()
{
Console.WriteLine(scriptRunner.RunBashCommand("cd /home/jman/myapp/"));
Console.WriteLine(scriptRunner.RunBashCommand("./test"));
}
我在 Ubuntu 中运行一个用 C# 编写的应用程序:
dotnet MyCoreApp.dll
我得到一个错误:
/bin/bash:测试:找不到命令
实际上如何正确运行脚本?
所以,感谢@PotroNik 的建议,我设法运行了 Bash 脚本。
辅助类创建:
在主程序中实现了以下方法:
以及启动脚本以卸载设备的方法: