如何通过 C# 进程运行导出 bash 命令
本文关键字:bash 命令 运行 何通过 进程 | 更新日期: 2023-09-27 17:56:48
尝试通过 C# 进程运行导出命令:
现状
Process proc = Process.Start("export", "display='":0.0'"");
proc.WaitForExit();
return proc.ExitCode;
部分错误
Unhandled Exception:
System.ComponentModel.Win32Exception: Cannot find the specified file
at System.Diagnostics.Process.Start_shell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>: 0
这是我对所有命令所做的方式,它总是有效。
功能示例
Process proc = Process.Start("kill", "810");
那么为什么它不适用于导出命令呢?
kill
是系统上内置的shell和二进制文件,因此可以在没有shell的情况下运行。
$ type -a kill
kill is a shell builtin
kill is /bin/kill
kill is /usr/bin/kill
export
只是一个内置的 shell,所以你不能在没有 shell 的情况下运行export
。
$ type -a export
export is a shell builtin
此外,即使您确实export
像这样运行,它也只会对它运行的 shell 产生影响,而不会对您的主进程或通过 Process.Start
运行的任何其他进程产生影响。
和以后生成的其他进程的环境变量,需要直接修改当前进程的环境(通过 C#)。