Merci Adam, c'est un bon point de départ pour moi. Cependant, pour une raison quelconque, lorsque j'ai essayé le code ci-dessus (modifié selon mes besoins), j'ai obtenu l'erreur suivante
System.ComponentModel.Win32Exception: Exec format error
voir le code ci-dessous qui donne l'erreur ci-dessus
ProcessStartInfo startInfo = new ProcessStartInfo()
{
FileName = "/Users/devpc/mytest.sh",
Arguments = string.Format("{0} {1} {2} {3} {4}", "testarg1", "testarg2", "testarg3", "testarg3", "testarg4"),
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
};
Process proc = new Process()
{
StartInfo = startInfo,
};
proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
string result = proc.StandardOutput.ReadLine();
//do something here
}
J'ai passé un peu de temps et j'ai trouvé la solution ci-dessous, qui fonctionne dans mon cas - juste au cas où quelqu'un rencontrerait cette erreur, essayez ci-dessous.
Solution de travail :
var command = "sh";
var scriptFile = "/Users/devpc/mytest.sh";//Path to shell script file
var arguments = string.Format("{0} {1} {2} {3} {4}", "testarg1", "testarg2", "testarg3", "testarg3", "testarg4");
var processInfo = new ProcessStartInfo()
{
FileName = command,
Arguments = arguments,
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
};
Process process = Process.Start(processInfo); // Start that process.
while (!process.StandardOutput.EndOfStream)
{
string result = process.StandardOutput.ReadLine();
// do something here
}
process.WaitForExit();