新手问题 在 shell 中给 ruby 传递参数

qdj6679 · 2012年12月13日 · 最后由 lgn21st 回复于 2012年12月13日 · 6032 次阅读

我在 shell 中调用 profit.rb 的 ruby 脚本,需要将一个字符串传递到 profit.rb 中,ruby 中的语句是:File.open("ctr-profit.data", "r") do |f|
就是把这个 ctr-profit.data 变成依靠参数传入。应该怎么做

可以通过环境变量,命令行参数,也可以通过 STDIN(管道,pipe,whatever)传递参数。

通过环境变量:

~ $ FOOBAR=foobar ruby -e "p ENV['FOOBAR']"
"foobar"

通过命令行参数:

~ $ ruby -e 'p ARGV[0]' foobar
"foobar"

通过 STDIN:

~ $ echo "foobar" | ruby -e 'p ARGF.read'
"foobar\n"
需要 登录 后方可回复, 如果你还没有账号请 注册新账号