Widzę te dwa zastosowania w Ubuntu „Command && Command” i „Command; Command”,
npapt-get update && apt-get upgrade
Co by się różniło, gdybym korzystał apt-get update; apt-get upgrade
?
Nie pytam o to konkretne użycie, ale ogólnie jaka jest różnica między tymi dwoma zastosowaniami?
& (simple sequencing), && (conditional AND) and || (conditional OR)
.||
również.Odpowiedzi:
&&
jest operatorem logicznym.;
to proste sekwencjonowanie.W programie
cmd1 && cmd2
cmd2 zostanie uruchomione tylko wtedy, gdy cmd1 zakończy działanie z pomyślnym kodem powrotu.Podczas gdy w
cmd1; cmd2
, cmd2 będzie działać niezależnie od statusu wyjścia cmd1 (zakładając, że nie ustawiłeś powłoki tak, aby kończyła się z każdą awarią skryptu lub coś takiego).W pokrewnej uwadze, przy
cmd1 || cmd2
użyciu||
operatora logicznego „LUB”, cmd2 zostanie uruchomiony tylko wtedy, gdy cmd1 nie powiedzie się (zwraca niezerowy kod wyjścia).Te operatory logiczne są czasami używane w skryptach zamiast podstawowej instrukcji if. Na przykład,
... można bardziej zwięźle osiągnąć:
źródło
Składnia
polecenie2 jest wykonywane tylko wtedy, gdy
command1
zwraca status wyjścia równy zero ( prawda ). Innymi słowy, uruchom,command1
a jeśli się powiedzie, uruchomcommand2
.Zarówno polecenie1 i polecenie2 będą realizowane niezależnie. Średnik umożliwia wpisanie wielu poleceń w jednym wierszu.
Powiązane :
polecenie2 wykonywane jest wtedy, i tylko wtedy, gdy polecenie1 zwraca kod wyjścia niż zero. Innymi słowy, uruchom
command1
pomyślnie lub uruchomcommand2
.Przykład
&&
operator:;
operator:||
operator:Linki zewnętrzne
źródło