執行 ruby 腳本時,Command Line 有選項可以設定這兩個全局變數 $DEBUG
和 $VERBOSE
,可以用來找警告跟除錯。
考慮以下腳本:
# debug-verbose.rb
puts "$DEBUG: #{$DEBUG}"
puts "$VERBOSE: #{$VERBOSE}"
def foo
bar = "baz"
end
$DEBUG
和 $VERBOSE
預設值都是 false
:
$ ruby debug-verbose.rb
$DEBUG: false
$VERBOSE: false
為 true
時會印出直譯器的警告訊息。
-w
, -W
, -W2
, --verbose
選項會把 $VERBOSE
設為真:
$ ruby -w debug-verbose.rb
debug-verbose.rb:5: warning: assigned but unused variable - bar
$DEBUG: false
$VERBOSE: true
-v
會印出 RUBY_VERSION
同時把 $VERBOSE
設為真:
$ ruby -v debug-verbose.rb
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
debug-verbose.rb:5: warning: assigned but unused variable - bar
$DEBUG: false
$VERBOSE: true
-v
選項通常用來修復 RubyGem 的警告。
--debug
, -d
把 $DEBUG
和 $VERBOSE
都設為真:
$ ruby -d debug-verbose.rb
Exception `LoadError' at /Users/Juan/.rubies/ruby-2.2.2/lib/ruby/2.2.0/rubygems.rb:1222 - cannot load such file -- rubygems/defaults/operating_system
Exception `LoadError' at /Users/Juan/.rubies/ruby-2.2.2/lib/ruby/2.2.0/rubygems.rb:1231 - cannot load such file -- rubygems/defaults/ruby
debug-verbose.rb:5: warning: assigned but unused variable - bar
$DEBUG: true
$VERBOSE: true
這兩個 LoadError
錯誤是 ruby -d
預期的行為。
-d
選項通常用來回報 rubygems 錯誤用。