5

我更喜欢使用 hash bang line 调用 Ruby 脚本,#!/bin/env 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
4

2 回答 2

3

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

正如这个答案这个答案和其他地方所建议的那样

于 2016-05-27T16:03:49.977 回答
2

我的第一个答案不适用于所有系统,所以这里有另一种方法:让你的第一个非评论行

$VERBOSE = true

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

-v'

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

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

于 2016-07-03T00:51:02.493 回答