遇到一个难搞的问题,同样的指令,在命令行可以正常跑,用 c#调用就出问题
public static string Run(this string cmd) {
var escapedArgs = cmd.Replace("\"", "\\\"");
var process = new Process() {
StartInfo = new ProcessStartInfo {
FileName = "/bin/bash",
Arguments = $"-c \"{escapedArgs}\"",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
}
};
process.Start();
var result = process.StandardOutput.ReadToEnd();
process.WaitForExit();
return Regex.Replace(result, @"[\u0001-\u001F]", "");;
}