LinuCレベル1 GNUとUnixのコマンド 問1
GNUとUnixのコマンド/コマンドラインの操作シェル変数 $? の説明として正しいものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「GNUとUnixのコマンド」に対応。実際の試験問題ではありません)
- A現在のシェルのプロセスID
- Bシェルスクリプトに渡された引数の数
- C直前に実行したコマンドの終了ステータス
- Dカレントディレクトリのパス
正解:C
解説
$? は、直前に実行したコマンド(またはパイプライン、シェル関数)の終了ステータスを保持する特殊シェル変数です。正常終了は0、異常終了は0以外の値になります。シェルスクリプトで直前のコマンドが成功したかどうかを判定する際に使います。
選択肢ごとの解説
- A誤り。現在のシェルのプロセスIDを表すのは $$ です。
- B誤り。シェルスクリプトに渡された引数の数を表すのは $# です。
- C正しい。$? は直前のコマンドの終了ステータスを表します。
- D誤り。カレントディレクトリのパスは pwd コマンドや $PWD 変数で取得します。