実行すると、次のようruby -version
になります。
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin11.0]
-e:1: undefined local variable or method `rsion' for main:Object (NameError)
何が間違っている可能性がありますか?
ruby -v または ruby --version のいずれかを使用します。-version を rsion に解析しています。
これら 2 つのいずれかが機能します。ダッシュの数を数えます:
ruby -v
ruby --version
「バージョン」に単一のダッシュを指定すると、Ruby は次のように表示します。
ruby -v -e rsion
-vオプションと--versionオプションがありますが、-version オプションはありません。(ダッシュを数えます。) main:Object の未定義のローカル変数またはメソッド 'rsion' を探します。
このスレッドから、実際の理由は非常に明確です:
を実行する
ruby -version
と、単一のダッシュしか使用しないため、「バージョン」という単語は単一のフラグとしてではなく、フラグのリストとして扱われます。この場合、バージョン情報を出力する -v フラグを取得します。次に、e フラグの処理を試みます。これは、基本的に「この行の残りの部分は、実行する Ruby スクリプトです」という意味です。そのため、Ruby は NameError を取得している "rsion" を忠実に解析しようとします。バージョン情報を取得するには、
ruby -v
またはを実行できますruby --version
。