Ich schreibe gerade ein Bash-Skript, das eine Anweisung hat, um zu überprüfen, ob ein Verzeichnis Zeug enthält.Bash IF Exit Code Redirect Fehler
Gerade jetzt, ist der Code
if [ "$(ls -A $APPLICATIONS)" ]; then
do something
else
do something else
fi
Wenn jedoch der Ordner tatsächlich leer ist, würde ich die Fehler von ls mag unterdrückt werden. Normalerweise würde es "Keine solche Datei oder Verzeichnis" sagen, aber ich möchte das zu/dev/null umleiten.
Ich habe versucht,
if [ "$(ls -A $APPLICATIONS &> /dev/null)" ]; then
zu tun, die alles tut Umleitung auf/dev/null, wie ich wollte, aber es verursacht auch das Verzeichnis nicht gefunden werden (im wesentlichen Exit-Code verursacht 1).
Was wäre der richtige Weg?
Ein leeres Verzeichnis sollte keinen Fehler verursachen. Sie erhalten diesen Fehler nur, wenn das Verzeichnis selbst nicht existiert und nicht leer ist. – Barmar
Wenn "$ APPLICATIONS" keinen Platzhalter enthält, z. '/ Pfad/zu/Verzeichnis/*' und nicht nur der Verzeichnisname. – Barmar
@Barmar Eine weitere Facette des Problems ist, dass mein Standort, wo das Verzeichnis sein sollte, eigene Probleme hatte. * facepalm * –