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 Zitieren
lordy Geschrieben 22. Mai 2009 Geschrieben 22. Mai 2009 Deshalb setzt mal die Variablen auch stets in "", damit das nicht passiert. if [ "$LOGDATE" == "$LOGPATH" ]; Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.