Bashskript Problem?
#!/bin/bash
echo "Typ des Betriebssystems = $OSTYPE"
# If-Schleife, die das Betriebssystem erkennt und den Pfad zum überwachten Ordner oder Datei festlegt
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
BASE_DIRECTORY="Linux-Ordner"
elif [[ "$OSTYPE" == "darwin"* ]]; then
BASE_DIRECTORY="/Users/name/Library/CloudStorage/GoogleDrive-eineemail@gmail.com/Meine Ablage/Uni/TestOrdner"
elif [[ "$OSTYPE" == "win32" || "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
BASE_DIRECTORY="/g/Meine Ablage/Uni/TestOrdner"
echo "Das Betriebssystem ist unbekannt."
exit 1
fi
Ausgabe beim Ausführen des Skripts:
"Typ des Betriebssystems = msys
Das Betriebssystem ist unbekannt."
Die erste Zeile ist korrekt, aber die zweite Zeile sollte so nicht sein. Ich bin auf meinem WindowsPC und habe einen existenten Pfad eingefügt. Dennoch erkennt das Skript das Betriebssystem nicht.
Problem gelöst: Ich habe ein "else" vergessen.
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Linux
Ich denke, du willst da ein else zwischen haben, oder?
elif [[ "$OSTYPE" == "win32" || "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
BASE_DIRECTORY="/g/Meine Ablage/Uni/TestOrdner"
hier "else" einfügen
echo "Das Betriebssystem ist unbekannt."
exit 1
fi
Nutzer, der sehr aktiv auf gutefrage ist
Kleiner Hinweis: Eine
If-Schleife
gibt es nicht! Das ist eine Verzweigung, die nur einmal geprüft wird, eine Schleife wird wiederholt.
guteantwort626
19.06.2024, 12:36
@verreisterNutzer
Haha, die Seite kannte ich noch nicht - so viel wäre mir diese Begriffsklauberei auch nicht wert, dass ich eine Domain dafür buchen würde :D
http://if-schleife.de/
LOL