助け合いフォーラム

LinuC

LinuC Lv1-101(Ver10.0)
問題ID : 14403
問題を開く
command1を実行し、続けてcommand2を実行させたい。ただし、command1が失敗した場合はcommand2を実行しないこととする。下線部にあてはまる語句は次のうちどれか。

command1 __ command2

正解

&&

解説

制御演算子「&&」は、command1が成功した場合のみcommand2を実行します。
「&&」はAND(論理積)を意味する演算子です。以下のように実行すると、command1の実行が失敗するとAND条件が成立しないため、command2は実行されません。command1の実行に成功した場合のみcommand2が実行されます。

command1 && command2

したがって正解は
・&&
です。

コマンドは処理が終了するとシェルに戻り値を返します。コマンドが成功(正常に終了)した場合は「0」、失敗した場合は「0」以外の値をシェルに返します。シェルはこの値によって2番目のコマンドを実行するか否かを決定します。

以下はlsコマンドに続けてdateコマンド(現在の日時を表示)を実行する場合の例です。


なお、以下のように1番目のコマンドが失敗した場合はdateコマンドは実行されません。


なお、「&&」の前後にスペースがなくても構いません。

その他の選択肢については以下のとおりです。

・||
command1が失敗した場合のみcommand2を実行する制御演算子なので、誤りです。

・?
任意の1文字を表すメタキャラクタなので、誤りです。

・$
変数を表すメタキャラクタなので、誤りです。

・;
コマンドを続けて実行する区切り文字なので、誤りです。

上に戻る

解答が違う

公開日 2022/07/01

問題に対する解答が間違ってると思います。
ommand1が失敗した場合はcommand2を実行しないこととする制御演算子は"||"ですが、
解答は”&&”になっています。

2022/07/02 09:22

制御演算子"||"は問題ID:14404のように「command1が失敗した場合のみcommand2を実行」なので、問題ID:14403の解答は”&&”で合ってませんか?
コマンドを実行しても解説と同じ動作でした。


コメント

i iwanagaa

2022/07/06 13:59

返信ありがとうございます。 当方の勘違いでした・・・

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?