我使用Terminal.app和iTerm,它們都支持通過多個選項卡和多個窗口同時運行多個shell。我經常使用這個特性,但是結果是,如果我想更改一個環境變量設置,我通常必須在每個打開的單個選項卡和窗口中運行相同的命令 - 以及任何新的選項卡或窗口我將來開放。我的shell可以相互通信,以便我可以更改一次環境變量,並將該更改傳播到所有其他當前正在運行的shell中?如何在所有正在運行的shell中修改環境變量?
我知道我可以靜態設置ENV變量像.bashrc
啓動文件。我也知道,我可以通過子shell繼承父shell的環境,通常或通過screen。這兩個選項都不能解決這個問題。這個問題特別是關於動態改變多個當前運行的shell的環境。
理想情況下,我想做到這一點,而不在任何時候寫這些變量的內容到磁盤。我希望能夠這樣做的原因之一是,我可以在env變量中設置敏感信息,例如散列密碼,並在以後的其他shell中引用它們。我希望在登錄時能夠設置這些變量,並且能夠在我的所有shell中引用它們,直到我註銷爲止,或者直到重新啓動計算機。 (這與ssh-agent
的工作方式類似,但據我所知,ssh-agent
將僅存儲SSH密鑰,而不是env變量。)
是否有可能使shell像這樣通信?
很抱歉,這是一個服務器故障問題。 – rook 2010-12-10 17:53:28