新手问题 为何 env irb 比直接执行 irb 启动块的多

lilijreey · 2018年12月26日 · 最后由 lilijreey 回复于 2019年01月13日 · 915 次阅读

直接执行Irb 至少等待4到5秒 执行env irb 2秒即可打开 哪位同学知道原因, 我的机器上装了rvm whereis irb
irb: /usr/bin/irb2.3 /usr/bin/irb /home/god/.rvm/rubies/ruby-2.2.3/bin/irb /usr/share/man/man1/irb.1.gz

我记得bash 有一种技巧可以记住程序的路径,而不用搜索PATH,但是忘了。哪位大大知道,说一下啊

共收到 8 条回复

表示不能理解。

我分别用 bash, zsh, fish 来启动 irb, env irb 全都是秒开

我用的是 rbenv (

2秒 也很慢呐 趁它启动的时候 狂按 Ctl+T 看看负载呢

至于 env irb 稍微快一点 https://unix.stackexchange.com/questions/103467/what-is-env-command-doing 根据这篇文章的说法,你的默认环境里的 irb 是不是个 alias ?

本地测试了一下 都是秒开

IChou 回复

是的,我的irb 其实是pry de alias

我记得bash 有一种技巧可以记住程序的路径

有的,看这里:http://mywiki.wooledge.org/BashFAQ/081

你的问题的原因应该是:因为 alias irb=pry,那么当 irb 是 bash 命令的第一个 word 时,这个 alias 就会生效,运行起来的是 pry。而运行 env irb这个命令时,alias 可能是不生效的。

5long 回复

bash 的这个命令是hash

用 strace 跟踪一下

sevk 回复

strace 了一下会load 大量gem。 因为我安装了很多gem,rails什么的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册