新手问题 [已解决] ruby shebang #! 的一个新手问题

cifery · 2014年12月28日 · 最后由 cifery 回复于 2014年12月28日 · 1945 次阅读

背景

最近突然想用 ruby 写个 CLI 的小工具自己用

环境

rbenv, oh-my-zsh

问题详述

#!/usr/bin/env ruby 这一句的作用应该就是让 ruby 脚本执行的时候不用输入 ruby xxx.rb, 而直接输入 xxx.rb 就可以执行了,因为我用的是 rbenv, 所以我特地去看了看 rbenv 的文档,文档上说,直接写 #!/usr/bin/env ruby 就没有问题了,但是我加上之后在命令行里没法通过直接输入文件名执行脚本,报错是zsh: command not found: xxx.rb, google 了一圈也没发现一个解决办法,或者是说我没判断出这个问题出现的原因是什么,所以特地来社区求助,先谢过。

xxx.rb 的权限加上可执行了么?另外,你运行脚本的命令是什么?我实践了一下,zsh 是可以用#!/usr/bin/env ruby的。

➜  ~  chmod +x ruby.rb
➜  ~  ./ruby.rb
success

是不是前面少了 ./

#1 楼 @special 谢谢,让我试一试,我一直在写 rails , 对这些不是很熟悉

#1 楼 @special 没错就是权限问题...我一开始没给当前用户加权限,直接./ruby.rb 运行,提示需要 sudo, sudo 之后还是报错 command not found , 就没再多想,是我疏忽了呀,非常感谢你的提醒

不客气,抛开 Rails 去写 Ruby 脚本也是个不错的体验:)

#4 楼 @special 我从 Rails 入门,喜欢上 Ruby, 所以现在就想用它做更多的事情,毕竟 Ruby 不只是有 Rails 嘛 :P

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