2016-12-09 3 views

Antwort

2

Dies ist zu ignorieren Ausgangsstatus sudo groupadd www-data.

Es ist eine gute Übung, ein Shell-Skript zu beenden, sobald einer seiner Ausdrücke fehlschlägt. Dies schützt vor schwer zu findenden Fehlern, wenn Sie vergessen, den Rückgabecode eines Befehls zu überprüfen. Dies wird in der Regel, indem sie folgende gleich am Anfang des Shell-Scripts erreicht:

set -e 
set -o pipefail 

Aber jetzt was, wenn Sie Exit-Status von einem der Befehle absichtlich ignoriert werden sollen? Sie können das Fail-on-error-Flag vorübergehend deaktivieren:

set +e 
sudo groupadd www-data 
set -e 

Aber das ist hässlich. Um Hässlichkeit zu vermeiden, können wir OR booleschen Ausdruck (||) mit : Befehl verwenden, der keine Wirkung hat und immer erfolgreich ist. Daher wird sudo groupadd www-data || : als solches übersetzt: run sudo groupadd www-data und, wenn es fehlschlägt, : ausführen, die nicht fehlschlagen kann. Unabhängig davon, ob sudo fehlschlägt oder nicht, ist der Rückgabestatus des gesamten Ausdrucks erfolgreich, und es wird niemals zu einer Beendigung des Skripts führen.

+0

danke gudok! – Dan

Verwandte Themen