ava2k3 Geschrieben 22. Mai 2009 Geschrieben 22. Mai 2009 Hi, ich würde bei einer datei gerne prüfen, ob diese aktuell ist. Bisher habe ich folgendes versucht: LOGDATE=$(/usr/bin/find $LOGPATH -mtime 0) if [ $LOGDATE == $LOGPATH ]; then echo "alles ok"; else exit 1; fi $LOGPATH ist einfach nur ein Pfad zu einer Datei. Wenn die Datei von heute ist, ist alles cool. Dann ist $LOGDATE = $LOGPATH Wenn ich den find von oben auf eine älter datei mache, ist die Ausgabe davon einfach leer...ist ja auch eigentlich ok, nur funktioniert die if abfrage dann nicht mehr richtig und gibt einen Fehler aus, weil $LOGDATE dann nichts ist. siehe hier: einmal mit korrektem find Ergebnis (mit bash -x aufgerufen) + LOGPATH=/home/user/log/test.log ++ /usr/bin/find /home/user/log/test.log -mtime 0 + LOGDATE=/home/user/log/test.log + '[' =/home/user/log/test.log == =/home/user/log/test.log ']' + echo 'alles ok' alles ok und hier fehlerhaft: + LOGPATH=/home/user/log/test1.log ++ /usr/bin/find /home/user/log/test1.log -mtime 0 + LOGDATE= + '[' == /home/user/log/test1.log ']' test.sh: line 7: [: ==: unary operator expected + exit 1 wie man sieht stört ihn da, dass $LOGDATE einfach nix ist. Ich stehe gerade auf dem Schlauch wie ich das besser lösen kann, ohne einen Fehler. Gruß und danke Seb
lordy Geschrieben 22. Mai 2009 Geschrieben 22. Mai 2009 Deshalb setzt mal die Variablen auch stets in "", damit das nicht passiert. if [ "$LOGDATE" == "$LOGPATH" ];
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden