我在linux上运行一个。net应用程序。我试图运行一个命令,运行一个shell脚本存在于linux。这是我在。net应用程序中的代码,调用命令:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd";
startInfo.Arguments = "/C /bin/gnome-terminal -- sh -e /bin/MyScripts/script.sh";
process.StartInfo = startInfo;
process.Start();
错误提示
无法识别/bin/gnome-terminal——sh -e/bin/myscripts/script.sh作为内部或外部命令,可操作的程序或批处理文件
但是,如果我尝试直接在wine上运行该命令,该命令可以正常工作并执行脚本。我试过像这样直接运行它:
wine cmd /c /bin/gnome-terminal -- sh -e /bin/MyScripts/script.sh
使用以下命令在wine上运行应用程序:
wine Application.exe
所以我假设如果应用程序运行命令,它将以直接调用的方式被调用,那么为什么我看到这种不一致的行为?我做错了什么?我应该做什么更改才能使命令在应用程序中正常工作?
Try
startInfo.FileName = "cmd.exe";