为什么ruby Shell中的$ PATH与Term中的$ PATH不同?

时间:2012-02-16 21:24:23

标签: ruby shell terminal

为什么ruby执行PATH Shell与术语中的路径不同?我如何让它们成为eqv?

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

返回

/bin/bash
8

但是在shell中:

/bin/bash
13

1 个答案:

答案 0 :(得分:3)

最有可能的原因是%x启动的shell不会提供您的配置文件(它不是登录shell)。如果是这种情况,那么你可以做

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