簡體   English   中英

如何通過C#進程運行export bash命令?

[英]how to run export bash command through C# process?

嘗試通過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");

那么為什么對導出命令不起作用?

kill是一個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 ,它也只會影響它所運行的外殼,而不會對您的主進程或通過Process.Start運行的任何其他進程產生影響。

要設置一個環境變量,以后該變量可用於當前進程和其他生成的進程,則需要直接修改當前進程的環境(通過C#)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM