![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.4ベストアンサー
- 回答日時:
>Rubyの本に、「$」はグローバル変数の指定として、次のような複数の扱い方があります。
本の名前が書いてありませんが、入門書ですかね。入門書には全部書いてないことも多いですよ。
わからないことがあったらマニュアルを見る習慣をつけましょう。
マニュアルの $? の説明部分には、$? には、nilもしくはProcess::Status 型のオブジェクトが入っていると書いてあります。
従って、$? の使い方はマニュアルのProcess::Statusのクラスの説明の所を見てください。
No.3
- 回答日時:
そういうことでしたら
$で始まるものはグローバル変数なのですが、最初から定義されている特殊変数というものがあります。$?もその一つで、他にもあります。これらはいろんな情報を参照したり設定したりするものです。
今後も出てくると思うので、先程のサイトなどで確認するとよいです。
この回答への補足
Rubyの本に、「$」はグローバル変数の指定として、次のような複数の扱い方があります。
1) 文字列処理関連:
「$_」、「$<」、「$.」、「$/」、「$\」、「$,」、「$;」、「$F」、
2) パタンマッチング関連:
「$~」、「$&」、「$'」、「$+」、
3) コマンドライン関連
「$-a」、「$-i」、「$-l」、「$-p」、「$-W」、
しかし、「$?」だけの説明は今まで見つからなかったのです。
恐らく直前の処理を指していると思います。どのように定義されているか、正しい使い方を知りたくて質問に出したのです。
No.2
- 回答日時:
これは、shellスクリプト等を触っていればよく出てくるし、それ以外でもよくある話なのですが、あるプログラムが終了すると、それが正常終了したか、異常終了したか終了後にほかのプログラムに知らせるリターンコードっていうのがあります。
まず最初に、cmdには"ls -l"がはいってます。
こいつを、systemつまり、OSに食わせるわけです(厳密にはちょっと違うと思いますがね。この説明)。
で、そいつが正常終了すれば、0。異常終了すれば0以外を返します。
…ふつうは。
ふつうはそういう設計になっているはずです。
歴史的に、正常終了は0なのです。
もしそれの由来とかどなたかご存じでしたらお教えねがいたいんですが。
ともかく、異常終了したら、1が返ってくる場合が殆どです。
これを条件のif文で分岐させるんです。
ご丁寧に解説していただいて有難うございます。
「$?.exitstatus」は system(cmd) 実行の戻り値ですね。
しかし、「$?」はどのように定義されたのでしょうか。
$?.exitstatus の他に、使い方の例を教えて頂けたら助かります。
No.1
- 回答日時:
http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fvar …
http://doc.ruby-lang.org/ja/1.9.3/class/Kernel.h …
マニュアルに明記されていますが、これらを読んだ上で分からないのでしょうか?
Rubyは最近から他人のコードを読みながら勉強しています。
分からない時はマニュアルを探しながら理解しています。
教えてもらったリンクは初めて見た「$?」のページです。
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBScriptでExcel(2019)上のデー...
-
パソコンのスクリーンセーバー...
-
1、Rstudioで回帰直線を求める...
-
ビーリアルのユーザー名を変え...
-
再起動後必ず2つのエラーが出...
-
100万件越えCSVから条件を満た...
-
最近RUBYの環境構築をしようと...
-
pandasでsqlite3にテーブル作成...
-
教えてください
-
英数字を含む文字列(0-9,A-Z)...
-
文字コードのエラー
-
(再質問)エクセルのマクロボ...
-
A4 持ち込み
-
7セグメント LED ディスプレイ ...
-
VBA メモ帳の上書き保存がしたい
-
Railsチュートリアルの最初がう...
-
NCルータープログラム学習方法
-
前回の質問の続き
-
あせんうぶり言語
-
これらは書誌情報だと思うので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
小文字wと大文字Wの区別
-
フォルダー名の大文字小文字
-
プログラミング言語で大文字と...
-
Filterで大文字、小文字の区別
-
encode指定の表記について(Rub...
-
VB.NETで階乗を求めるプログラ...
-
COBOLのIFの入れ子について
-
web上のhtmlファイルから文字デ...
-
Ruby / passenger のインストー...
-
RubyでNo such file or directo...
-
ruby の Σ計算
-
CかC++どちらを覚えるべきですか?
-
バーコードのチェックデジット...
-
GoTo文について
-
Ruby interpreter (CUI) 2.2.3 ...
-
rubyでパケットキャプチャ出来...
-
Ruby on Railsでボタンをクリッ...
-
秀丸エディタで、同じ記号で囲...
-
Passengerがインストールできな...
-
RubyでexeファイルをつくるExer...
おすすめ情報