我想知道是否有可能從我正在執行我的ruby腳本的位置更改當前終端目錄。如何從ruby腳本中的(終端)cd文件夾
例如,如果我在終端中執行$HOME
的腳本,我想在腳本的末尾以$HOME/mydir
的cd命令。
我已經嘗試了幾件事,但我總是在相同的導演中找到劇本開始的地方。
事情我已經嘗試:
Dir.chdir(mydir)
%[cd mydir]
實際上他們做的改變目錄,但只在腳本執行的線程。腳本結束後,我在終端中的當前位置與啓動腳本之前的位置仍然相同。
我在SO中發現了類似的東西,但它是Python-related,迴應看起來是負面的。
您可能會問爲什麼?
我目前參與了一個命令行應用程序(使用gli
),作爲起點,它需要一個項目文件夾。所以我的第一個命令是這樣的:
$ myfoo new project
它創建在當前目錄名project
一個新的文件夾。現在能夠與其他命令工作,我需要:
$ cd project
project$ myfoo domore
所以我只是認爲這將是很好的找到了我自己在project
已經執行myfoo new project
後。
因爲我害怕,這不是那麼容易(根本不可能)。那麼使用ruby調用的bash腳本代替RubyGems生成的標準文件怎麼樣?這是可行的嗎?我是愚蠢的嗎?我應該使用eval
嗎?
感謝您的回答。但我擔心沒有人可以接受。可能問題不是:)。
這似乎不太可能。來自ruby的任何系統調用都在與腳本/外殼不同的線程中運行,並且不會影響當前位置。你希望用它來做什麼? – 2011-05-25 22:11:53
@ Douglas-F-Shearer:出於好奇,我在理由 – 2011-05-25 22:18:57
中有一點延伸,爲什麼我的答案沒有奏效?我已經多次使用過這種技術,但我不清楚它如何不適合您的情況。 – Ian 2011-05-26 21:43:57