So erzwingen Sie die abnormale Beendigung eines Bash-Skripts

So erzwingen Sie die abnormale Beendigung eines Bash-Skripts

Ich habe ein Synology NAS mit DSM. Ich habe ein Bash-Skript erstellt, um zu prüfen, ob eine bestimmte Datei in einem bestimmten Ordner vorhanden ist. Das Skript wird nach einem Zeitplan ausgeführt und sendet mir das Ergebnis per E-Mail zurück.

Das Problem besteht darin, dass ich zu viele E-Mails bekomme, in denen nur steht, dass das Skript ordnungsgemäß ausgeführt wurde.

Der DSM-Taskplaner ermöglicht das Senden der E-Mail nur, wenn das Skript abnormal beendet wird.

Meine Frage ist:wie kann ich eine abnormale Beendigung des Skripts erzwingen?

Dies würde ich tun, um eine E-Mail zu erhalten, wenn die gesuchte Datei nicht existiert.

Antwort1

Sie können exit 1das Skript mit beenden.

Der Exitcode 0bedeutet, dass alles problemlos gelaufen ist, alle anderen weisen auf eine Art Fehler hin.

Antwort2

Sie können einen Exit-Code verwenden, wenn die Datei fehlt:

#!/bin/bash
file="/foo/bar"
if [ -e "$file" ]
then
exit 0
else
exit 1
fi

[ -e ]ist ein Operator, der prüft, ob "$file"existiert. Er ist gleichwertig mit test -e $fileif-else-fi, aber dafür geeignet.
SieheManntestwenn Sie mehr Operatoren benötigen.

Edit:
Um es noch genauer zu beschreiben, gibt es auchandere Exit-CodesDies können Sie der Einfachheit halber verwenden, vorausgesetzt, Sie erhalten eine andere E-Mail-Warnung für den Fall, dass das Skript „abstürzt“ oder aus irgendeinem Grund nicht ausgeführt wird.

verwandte Informationen