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

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

直接执行 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,但是忘了。哪位大大知道,说一下啊

表示不能理解。

我分别用 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 什么的

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