2012-02-16 53 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

相关问题