尝试通过C#进程运行export命令:
现状
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");
那么为什么它不能用于导出命令?
答案 0 :(得分:3)
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
运行的任何其他进程产生影响。< / p>
要设置一个可供当前进程和其他生成进程使用的环境变量,您需要直接修改当前进程的环境(通过C#)。