2014-12-19 47 views
0

我創建了以下方法,將我的環境變量的環境變量:紅寶石:設置使用system()

def set_time 
    puts "setting_time" 
    system("export GIT_COMMITTER_DATE='#{@date}'") 
    system("export GIT_AUTHOR_DATE='#{@date}'") 
    end 

但由於某些原因,當我進入我的控制檯運行此之後,環境變量都沒有已被添加!我能夠運行其他命令行界面關鍵字,它的工作原理。我怎樣才能從Ruby設置環境變量?

回答

1

他們不'粘'的原因是因爲當你從Ruby運行一個shell命令時,它會打開一個新的進程。那個過程,作爲你當前Ruby過程的一個孩子並不是持久的,因爲它最終會死掉。

關於這方面的一個很好的資源是Jesse Storimer的博客文章,關於環境和流程的信息比我在這裏輸入的要多得多。

根據您的操作系統,您可以使用Ruby寫入您的'rc'文件,例如~/.bashrc或在Windows上更改您的註冊表,如果您確實希望這些文件在登錄時保持不變。

所以答案是,你是設置和輸出環境變量。他們根本不是在兒童過程的生活中倖存下來的。