2012-02-16 64 views
1

爲什麼PATH在ruby中執行Shell與Term中的路徑不同?我如何讓他們成爲eqv?

puts %x[echo $SHELL] 
puts %x[echo $PATH].split(':').length 

回報

/bin/bash 
8 

但在外殼:

/bin/bash 
13 
+0

heh斐波那契序列。 – 2012-02-16 21:25:27

回答

3

最有可能的,因爲%x啓動shell不採購你的個人資料(它不是一個登錄shell)。如果是這樣的話,那麼你可以做

puts %x[bash --login -c 'echo $PATH'] 
+0

我如何讓它成爲eqv?或加載我的個人資料到ruby%x shell? – 2012-02-16 21:59:32

+0

@ Mr.DemetriusMichael,我正在更新我的答案,就像你在寫你的評論 – 2012-02-16 22:02:40

+0

看起來不錯,但是當我把%x [bash --login -c'echo $ PATH'; wget www.google.com]'它給了我錯誤:'sh:wget:command not found'(wget在我的配置文件中,而不是登錄shell) – 2012-02-16 22:11:50

相關問題