助け合いフォーラム
LinuC Lv1-101(Ver10.0)
問題ID : 14403
問題を開く
command1を実行し、続けてcommand2を実行させたい。ただし、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文字を表すメタキャラクタなので、誤りです。
・$
変数を表すメタキャラクタなので、誤りです。
・;
コマンドを続けて実行する区切り文字なので、誤りです。
「&&」はAND(論理積)を意味する演算子です。以下のように実行すると、command1の実行が失敗するとAND条件が成立しないため、command2は実行されません。command1の実行に成功した場合のみcommand2が実行されます。
command1 && command2
したがって正解は
・&&
です。
コマンドは処理が終了するとシェルに戻り値を返します。コマンドが成功(正常に終了)した場合は「0」、失敗した場合は「0」以外の値をシェルに返します。シェルはこの値によって2番目のコマンドを実行するか否かを決定します。
以下はlsコマンドに続けてdateコマンド(現在の日時を表示)を実行する場合の例です。
なお、以下のように1番目のコマンドが失敗した場合はdateコマンドは実行されません。
なお、「&&」の前後にスペースがなくても構いません。
その他の選択肢については以下のとおりです。
・||
command1が失敗した場合のみcommand2を実行する制御演算子なので、誤りです。
・?
任意の1文字を表すメタキャラクタなので、誤りです。
・$
変数を表すメタキャラクタなので、誤りです。
・;
コマンドを続けて実行する区切り文字なので、誤りです。
解答が違う
i
iwanagaa
投稿日 2022/07/01
問題に対する解答が間違ってると思います。
ommand1が失敗した場合はcommand2を実行しないこととする制御演算子は"||"ですが、
解答は”&&”になっています。
q
quensan
2022/07/02 09:22
制御演算子"||"は問題ID:14404のように「command1が失敗した場合のみcommand2を実行」なので、問題ID:14403の解答は”&&”で合ってませんか?
コマンドを実行しても解説と同じ動作でした。
コメント
この投稿に対して返信しませんか?
i iwanagaa
2022/07/06 13:59
返信ありがとうございます。 当方の勘違いでした・・・