12

実行すると、次のよう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)

何が間違っている可能性がありますか?

4

3 に答える 3

38

ruby -v または ruby​​ --version のいずれかを使用します。-version を rsion に解析しています。

これら 2 つのいずれかが機能します。ダッシュの数を数えます:

ruby -v
ruby --version

「バージョン」に単一のダッシュを指定すると、Ruby は次のように表示します。

ruby -v -e rsion
于 2013-08-09T19:46:37.863 に答える
8

-vオプションと--versionオプションがありますが、-version オプションはありません。(ダッシュを数えます。) main:Object の未定義のローカル変数またはメソッド 'rsion' を探します。

このスレッドから、実際の理由は非常に明確です:

を実行するruby -versionと、単一のダッシュしか使用しないため、「バージョン」という単語は単一のフラグとしてではなく、フラグのリストとして扱われます。この場合、バージョン情報を出力する -v フラグを取得します。次に、e フラグの処理を試みます。これは、基本的に「この行の残りの部分は、実行する Ruby スクリプトです」という意味です。そのため、Ruby は NameError を取得している "rsion" を忠実に解析しようとします。

バージョン情報を取得するには、ruby -vまたはを実行できますruby --version

于 2013-08-09T19:48:05.127 に答える