【问题标题】:How to run Ruby script with env and warnings enabled?如何在启用 env 和警告的情况下运行 Ruby 脚本?
【发布时间】:2013-02-06 16:05:59
【问题描述】:

我更喜欢使用#!/bin/env ruby 调用带有井号线的 Ruby 脚本,这允许我使用本地 Ruby 安装而不会与系统 Ruby 安装冲突。但是如何在 Linux 系统上启用警告呢?我的测试脚本:

#!/usr/bin/env ruby -w

FOO

在 Mac 上我得到:

maasha@mel:~$ ./test.rb
./test.rb:3: warning: possibly useless use of a constant in void context
./test.rb:3:in `<main>': uninitialized constant FOO (NameError)

在 Linux 上我得到:

maasha@orsted:~$ ./test.rb
/usr/bin/env: ruby -w: No such file or directory

【问题讨论】:

标签: ruby warnings


【解决方案1】:

#!/usr/bin/env RUBYOPT=-w ruby

this answerthis answer 和其他地方建议的那样

【讨论】:

  • 哦,现在你告诉我! 3年后! ;o)
  • 对不起,我之前没有看到你的问题 - 或者找到了答案,我又去找了一遍,这次找到了
  • ... 显然这不适用于所有系统,所以这里有另一种方法:让你的第一个非评论行 $VERBOSE = true
  • 您最好将其添加为单独的答案。
【解决方案2】:

我的第一个答案不适用于所有系统,所以这里有另一种方法:创建你的第一个非注释行

$VERBOSE = true

这就是-w 开关的作用。来自http://linux.die.net/man/1/ruby

-v'

--verbose' 启用详细模式。 Ruby 将在开始时打印其版本,并将变量 $VERBOSE 设置为 true。一些方法打印 如果此变量为真,则额外消息。如果给出这个开关,并且 没有其他开关,Ruby 在打印其版本后退出。

-w' 启用详细模式而不在开头打印版本消息。它将 $VERBOSE 变量设置为 true。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 2018-12-10
    相关资源
    最近更新 更多