オリジナル問題 LinuCレベル1試験 問題 問7
シェルおよびスクリプト/シェルスクリプトシェルスクリプトの条件分岐・繰り返しに関する説明として、正しいものをすべて選べ。
出典:オリジナル問題 LinuCレベル1試験 問題 問7
- Aif文の条件式は、testコマンド([ ])やコマンドの終了ステータスによって真偽が判定される
- Bfor 変数 in リスト; do ... done の形式で、リストの要素を順に処理するループを書ける
- Cwhileループは、条件が偽である間、処理を繰り返す
- Dシェルスクリプトにはif文やfor文といった制御構造は存在せず、常に上から順に1行ずつ実行される
正解:A、B
解説
if文は、testコマンド(角括弧[ ]も同等)やコマンドの終了ステータス(0なら真、0以外なら偽)によって条件を判定します。for 変数 in リスト; do ... done は、リストの各要素を順に変数に代入しながら処理を繰り返す構文です。whileループは条件式が「真」である間処理を繰り返すループで、「偽である間繰り返す」という説明は誤りです(それはuntilループの動作です)。シェルスクリプトにはif・for・while等の制御構造が用意されており、「制御構造が存在しない」という説明も誤りです。
選択肢ごとの解説
- A正しい。if文はtestコマンドやコマンドの終了ステータスで条件を判定します。
- B正しい。for 変数 in リスト; do ... done は、リストの要素を順に処理するループです。
- C誤り。whileループは条件が「真」である間繰り返すループです。「偽である間繰り返す」のはuntilループの動作で、説明が逆です。
- D誤り。シェルスクリプトにはif・for・while等の制御構造があり、単純な上から下への逐次実行だけではありません。