2015-06-01 137 views
1

我的理解是,當調用spawn "string command"xmonad時,實際上將參數"string command"傳遞給/bin/sh。 有沒有辦法改變這種行爲?將環境變量傳遞給XMonad spawn

更具體地說,是否有可能讓由spawn調用的解釋器實例知道一些預定義的環境變量(通常爲SSH_AUTH_SOCKSSH_AGENT_PID)? 當然,它總是可以求助於spawn "$VARIABLE=stuff; export $VARIABLE; string command",但它困擾我,應該每次創建和導出變種。

回答

0

嚴格回答你的第一個問題,XMonad.Util.Runxmonad-contrib)中的safeSpawn函數會運行一個命令,而不會將它傳遞給shell。

但是,就環境變量而言,這應該沒有多大區別。在這兩種情況下,衍生命令都應該繼承XMonad進程的環境(shell的啓動/ rc文件可以在產生的情況下調整)。

可以使用普通的Haskell工具設置啓動過程的環境,例如, System.Posix.Process.executeFile(如果要製作XMonad進程環境的修改副本,則需要System.Environment.getEnvironment)。

+0

感謝您的信息。現在,讓我們說我已經開始了這個過程,並且我想將環境變量傳遞給「XMonad過程的環境」(如果這使感官)。看起來'System.Posix.Process.executeFile'是正確的工具,但你能給我一個簡單的例子來說明如何使用它嗎?假設我使用'$ VARIABLE = stuff創建了一個文件;導出VARIABLE'如果有幫助。 –

相關問題