Bashskript Problem?

Ich habe hier ein Bashskript, welches Dateien überwacht (noch nicht vollständig und absolut unoptimiert). Ich weiß, dass es Tools gibt, aber es ist ein Projekt für die Uni und deshalb ist Optimierung und Effizienz nicht wirklich wichtig. Ich möchte damit die Grundlagen des Shellscriptings einfach etwas lernen.

Das ist bisher das Script:

#!/bin/bash


echo "Das Skript wurde gestartet. Der Typ Ihres Betriebssystem ist "\"$OSTYPE\""."


# If-Abfrage, die das Betriebssystem erkennt und den Pfad zum überwachten Ordner oder Datei festlegt # HIER BITTE DIE PFADE ZUM ZU ÜBERWACHENDEN ORDNER EINTRAGEN   
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
    BASE_DIRECTORY=" " # Übergibt dem überwachten Ordner eine Variable, wenn Betriebssystem = Linux
elif [[ "$OSTYPE" == "darwin"* ]]; then
    BASE_DIRECTORY="/Users/name/Library/CloudStorage/GoogleDrive-email@gmail.com/Meine Ablage/Uni/TestOrdner" # Übergibt dem überwachten Ordner eine Variable, wenn Betriebssystem = MacOs
elif [[ "$OSTYPE" == "win32" || "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
    BASE_DIRECTORY="/g/Meine Ablage/Uni/TestOrdner" # Übergibt dem überwachten Ordner eine Variable, wenn Betriebssystem = Windows
else    
    echo "Das Betriebssystem ist unbekannt." # Wenn das Betriebssystem unbekannt ist, wird eine Fehlermeldung ausgegeben
    exit 1
fi


DIRECTORY="$BASE_DIRECTORY" # Pfad zum Ordner
FILE="$BASE_DIRECTORY/Datei.txt" # Pfad zur Datei   
FILE2="$BASE_DIRECTORY/Datei2.txt" # Pfad zur Datei2 


cd "$BASE_DIRECTORY" || {
    echo "Wechsel zu $BASE_DIRECTORY fehlgeschlagen!" # Wechselt in den TestOrdner oder gibt eine Fehlermeldung aus
    exit 1;
}



# Funktion, um zu überprüfen, ob Dateien gelöscht wurden
checkIfDeleted() {
    if [ ! -f "$FILE" ]; then 
        echo "Die Datei \"$(basename "$FILE")\" wurde gelöscht, umbenannt oder verschoben."
    elif [ ! -f "$FILE2" ]; then
        echo "Die Datei \"$(basename "$FILE2")\" wurde gelöscht, umbenannt oder verschoben."
    elif [ ! -d "$DIRECTORY" ]; then
        echo "Der Ordner \"$(basename "$DIRECTORY")\" wurde gelöscht, umbenannt oder verschoben."
    fi
}


# Speichert den "ursprünglichen" Hash-Wert der Dateien
ORIGINAL_HASH=$(md5 -q "$FILE")
ORIGINAL_HASH2=$(md5 -q "$FILE2")


checkIfEdited() {
    if [ ! -f "$FILE" ]; then # Wenn $FILE nicht existiert, dann wird das Skript hier beendet
    return
    fi


    if [ ! -f "$FILE2" ]; then # Wenn $FILE2 nicht existiert, dann wird das Skript hier beendet
    return
    fi


    if [ ! -d "$DIRECTORY" ]; then # Wenn $DIRECTORY nicht existiert, dann wird das Skript hier beendet
    return
    fi


    # Berechnet den aktuellen Hash-Wert der Dateien
    CURRENT_HASH=$(md5 -q "$FILE")
    CURRENT_HASH2=$(md5 -q "$FILE2")


    # Hash-Werte werden verglichen
    if [ "$CURRENT_HASH" != "$ORIGINAL_HASH" ]; then
        echo "Die Datei \"$(basename "$FILE")\" wurde bearbeitet."
        # Ursprünglicher Hash-Wert wird für zukünftige Überprüfungen aktualisiert
        ORIGINAL_HASH="$CURRENT_HASH"
    elif [ "$CURRENT_HASH2" != "$ORIGINAL_HASH2" ]; then
        echo "Die Datei \"$(basename "$FILE2")\" wurde bearbeitet."
        # Ursprünglicher Hash-Wert wird für zukünftige Überprüfungen aktualisiert
        ORIGINAL_HASH2="$CURRENT_HASH2"
    fi
}


while true; do # Endlosschleife, die die Funktionen "checkIfDeleted" und "checkIfEdited" alle 10 Sekunden ausführt
    checkIfDeleted
    checkIfEdited
    sleep 10
done

Ja, ich weiß, welche Probleme das Skript mit sich bringt, aber ich habe ein anderes Problem:

Wenn jemand das Skript nutzen möchte, muss er die Pfade seiner Dateien einfügen und sogar neue Variablen definieren.

Man könnte das doch so machen, dass das Skript die Liste des Ordners einliest und dann auf alle Dateien direkt zugreifen muss, ohne dass man sie in das Skript einfügen muss.

Also irgendwie mit dem Befehl "ls". Ich weiß aber nicht, wie ich das implementieren soll.

Kann mir wer helfen bitte?

...zum Beitrag
FILES=($(ls -p | grep -v / | head -n 2))

# Überprüfen, ob genau zwei Dateien vorhanden sind
if [ ${#FILES[@]} -ne 2 ]; then
    echo "Es sind nicht genau zwei Dateien im Ordner $BASE_DIRECTORY."
    exit 1
fi


FILE="$BASE_DIRECTORY/${FILES[0]}" # Pfad zur ersten Datei
FILE2="$BASE_DIRECTORY/${FILES[1]}" # Pfad zur zweiten Datei

Problem ist, das das ganze wenn du es so mit den beiden Variablen FILE und FILE2 machst, nur bei eben genau 2 Dateien funktioniert. Ich musste es jetzt aber so machen weil du ja später immer die beiden Variablen zum vergleichen nutzt.

...zur Antwort

Wenn sie wirklich nur Danke geschrieben hat und nicht irgendwie weiter eine Konversation eingegangen ist, hat sie wahrscheinlich nicht wirklich Interesse

...zur Antwort

Bro lass es einfach.
über sowas musst du drüber stehen ist echt nicht so schlimm, mach einfach Netflix oder so an und in 2 tagen hast du das vergessen, versprochen

...zur Antwort

das muss nicht sein. vielleicht ist die Lösung falsch oder so.
Im Bild siehst du das alles da ist wie es muss.

Bild zum Beitrag

d von der Aufgabe und auch der Lösung reinstellen?

...zur Antwort

geht nicht anders, kann man aber nicht viel falsch machen

...zur Antwort

Also IQ Test ist nicht so ganz akkurat und so aber nen mindest Bildungsstand könnte man meiner Meinung nach schon vorraussetzen.
Dann hätte die AFD auch sicher nicht so viele Stimmen

...zur Antwort

Also unabhängig davon ob du es darfst oder nicht würde ich es nicht machen solange du dich nicht grade als Vollzeit Bildermaler bewirbst.
Denke das kommt eher unprofessionell rüber

Kommt natürlich auf Firma und Job an aber generell würde ich das nicht machen

...zur Antwort

Schau mal in den Einstellungen von Lunar Client wie viel Ram du Minecraft zugewiesen hast. Mach es mal testweise auf 15-16 das sollte dann schon sehr gut sein, dann kannst du es auch wieder runter machen.
mach es aber nie höher als die hälfte deines Rams!

Nebenbei: ist es in anderen Spielen besser?

...zur Antwort

Also ich denke da wirst du trotzdem wiederholen müssen, es geht ja nicht darum welche Fächer du hattest sondern ob der gesamt schnitt halt bestanden ist.

An deiner Stelle würde ich mich anstrengen um wenigstens eine 5 auf ne 4 zu bekommen (red auch mal mit deinen lehrern ob du vllt ne extra leistung erbringen kannst) und dann kannst du ja bestimmt die zweite 5 mit ner 2 oder zwei dreien ausgleichen.

Würde aber einfach mal anrufen wenn du es nicht ausgleichen kannst.
Oder frag deine Lehrer die könnten sowas auch wissen

...zur Antwort

Also wenn sich jemand richtig mühe gibt bringt deine VPN eh nichts, es sei denn du hast Mullvad oder ähnliches verwendet.

Also ja, kann theoretisch, halte ich aber für recht unwahrscheinlich.
Torrents starten sich immer mit deinem PC so können sie auch das Netzwerk aufrechterhalten

...zur Antwort

Das was wichtig ist auf einen USB stick und dann windows zurücksetzen. Da kannst du sonst nicht viel machen weil woher sollen die Cleaning Programme wissen was dir wichtig ist und was nicht.

...zur Antwort
Schreib ihm

Ich glaube wenn er dir wirklich nur für Freundschaft reichen würde, dann würdest du dir nicht so einen Kopf machen

...zur Antwort

Nennt sich Bots und da kannst du nicht wirklich was machen, da muss sich insta selber drum kümmern die wegzubannen

...zur Antwort

Also ich bin jetzt 11. Klasse und ich fand irgendwie das die 10. klasse leichter war als 9,8. Aber so generell fand ich keine von den Klassen extrem wichtig

Ich denke das Überspringen lohnt sich für dein Leben schon (wenn die noten kein problem sind), weil du sparst dir halt schon gut Zeit allerdings musst du dann halt auch neue Freunde in der Klasse finden etc:

Also wenn du nicht gerade introvertiert bist würde ich es auf jeden fall machen

...zur Antwort

Möglich das deine Tastatur auf eine andere Sprache eingestellt ist wie z.B Englisch da wäre es dann shift + 2

Drück Mal Windows + leertaste und schau ob es dann geht, siehst dann auch unten rechts welche Sprache eingestellt ist

...zur Antwort