注:ABCはコマンドです...
言語をよりよく理解するために、これらのコマンドのステッププロセスが何であるかを教えてください。
A || B ; C = If A fails then run B then C?
A ; B || C = Run A then B then C if (B fails... or is it if A fails?)?
私が本当に欲しいものは次のとおりです(しかし、上記のステップを理解したい)。
Aが失敗した場合はBを実行し、Aが成功した場合はBをスキップしてC、d、eなどを実行します。 ("||"、";"、および/または"&&"を使用してこれをどのように実行しますか?)
このリンクで情報を見つけましたが、3つではなく2つのコマンドの手順のみが表示されます。https://askubuntu.com/questions/334994/which-one-is-better-using-or-to-execute-multiple-commands-in-one-line
他のリンクが質問に答えない理由:
その後、次に4つのコマンドをリンクする必要がある場合、ここの答えは3つのコマンドがどのように機能するかを示しているため、新しい質問をします。 – don_crissti26分前
いいえ、次のステップでは言語を理解するからです:)主にこれのために…:コマンドとスイッチ(?)「||」順番に(この場合はコマンドC)が常にコマンド(A)を見ているのか、コマンド(B)を見ているのかはわかりません。 )))。これは主に誰かが次のように言って混乱しているからです。 A || B = Aが失敗した場合、Bを実行します。次のコマンド(C、Dなど)もAを見ているかどうかはわかりません:)
ベストアンサー1
A || B ; C
A が 0 以外の状態で終了した場合、B を実行します。 C 無条件実行
A ; B || C
Aを実行します。次にBを実行します。 B が 0 以外の状態で終了すると C を実行します。
接線的に が表示される場合がありますA && B || C
。これは通常asの略語ですif A; then B; else C; fi
。しかし、1つの重要な違いがあります。
A && B || C
- Aが失敗した場合はCを実行します。
- A が成功すると B を実行します。
- Bが失敗した場合はCを実行します。
if A; then B; else C; fi
- Aが失敗した場合はCを実行します。
- A が成功すると B を実行します。
- Bが失敗した場合、Cは実行されません。
デモ:
$ (echo A; exit 0) && (echo B; exit 1) || (echo C; exit 2); echo $?
A
B
C
2 # <== the exit status of C
$ if (echo A; exit 0); then (echo B; exit 1); else (echo C; exit 2); fi; echo $?
A
B
1 # <== the exit status of B