Shell Datum vergleichen nicht möglich (date als String)

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von infinity331, 06.05.2011.

  1. #1 infinity331, 06.05.2011
    infinity331

    infinity331 Jungspund

    Dabei seit:
    08.03.2011
    Beiträge:
    14
    Zustimmungen:
    0
    Hallo Kollegen und Kolleginnen,

    ich habe folgendes Problem, welches mich gleichzeitig an zwei Stellen nicht weitermachen lässt. Es handelt sich um den Vergleich eines Datum, bzw. die Weitergabe eines date-Werts als String.

    Code:
    #!/bin/sh
    
    VAR1=$(date +%M) 
    
    if "$VAR1" = "00"
       then echo "Es ist 00 Minuten."
    fi
    Ich wollte mit diesem Code nun schauen, ob die Uhrzeit 00 Minuten beinhaltet und daraufhin einfach eine Ausgabe machen. An anderer Stelle sieht es ein wenig komplizierter aus, der Fehler ist aber genauso. Es ist nicht möglich den Wert der date - Funktion über eine Variable weiter- bzw. auszugeben. Denn es kommt folgende Fehlermeldung.

    Die 12 entspricht dem aktuellen Minutenstand, denn es ist 09:12 Uhr.

    Ich hoffe ihr könnt mir weiterhelfen.

    LG, infinity331
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
  4. #3 HeadCrash, 06.05.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    "-eq" ist für Zahlen, "=" ist für Strings (Stringoperatoren :) ) schon richtig.

    Das Problem hier ist
    Code:
    #!/bin/sh
    
    VAR1=$(date +%M) 
    
    if "$VAR1" = "00"
       then echo "Es ist 00 Minuten."
    fi
    
    ist die fehlerhafte IF-Anweisung
    Code:
    if [ "$VAR1" = "00" ]; then
    
    dann sollte das funktionieren.

    mfg
    HeadCrash
     
  5. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    "=" ist doch ein Zuweisung?!

    Sorry, falls ich Verwirrung gestiftet habe


    //Edit:
    nochmal sorry, hab meinen eigenen Link zu Ende gelesen :D
     
  6. #5 infinity331, 06.05.2011
    infinity331

    infinity331 Jungspund

    Dabei seit:
    08.03.2011
    Beiträge:
    14
    Zustimmungen:
    0
    Vielen Dank, der Beitrag von HeadCrash hat mir geholfen. Allerdings habe ich ähnliches Problem an einer anderen Stelle.
    Ich nutze RRDtool und würde da in einen COMMENT (rrdgraph) welcher nur normalen Text ausgibt das Datum ausgeben, allerdings bekomme ich die Fehlermeldung:

    Ich dachte der Fehler kommt aus dem selbigen Grund, wie obiger. Allerdings scheint dies ja nun doch nicht so zu sein. Schade.
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 HeadCrash, 06.05.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Die Fehlermeldung ist ja schon mal ein Ansatz, aber der entsprechende Aufruf dazu wäre sicherlich hilfreich.

    Ohne jetzt wirklich viel Ahnunf von RRDtool und Co zu haben würde ich Aufgrund deiner Fehlermeldung sagen, dass ihm eine Variable fehlt, anders kann ich mir die beiden ' am ende der Meldung erstmal nicht erklären.

    mfg
    HeadCrash
     
  9. #7 infinity331, 06.05.2011
    infinity331

    infinity331 Jungspund

    Dabei seit:
    08.03.2011
    Beiträge:
    14
    Zustimmungen:
    0
    Der komplette Vorgang wird in einem Skript abgearbeitet, deswegen schreibe ich hier nur dich wichtigsten Punkte rein.

    Code:
    #!/bin/sh
    ...
    
    STARTDL=$(date +%H:%M)
    ...
    
    nice -n 19 /usr/bin/rrdtool graph /home/user/Desktop/Archiv/$DATE/$TIME/server.png \
    --start -$SHOWTIME -a PNG -t "server Performance" --vertical-label "Bit" -w 600 -h 200 \ 
    -M DEF:serverr=/root/scripts/rrdtool/server.rrd:serverr:AVERAGE COMMENT:" \n" [B]COMMENT:" $STARTDL "[/B] \
    COMMENT:"					          Average						Maximum\n"  \
    LINE1:serverr#00dd00:"Download" VDEF:serverra=serverr,AVERAGE VDEF:serverrm=serverr,MAXIMUM GPRINT:serverra:"%16.2lf %sbit/s" GPRINT:serverrm:"%16.2lf %sbit/s\j" DEF:servert=/root/scripts/rrdtool/server.rrd:servert:AVERAGE \
    LINE1:servert#0000ff:"Upload  " VDEF:serverta=servert,AVERAGE VDEF:servertm=servert,MAXIMUM GPRINT:serverta:"%12.2lf %sbit/s" GPRINT:servertm:"%12.2lf %sbit/s\j" \
    COMMENT:" \n" COMMENT:"$(/bin/date "+%d.%m.%Y %H\:%M\:%S")\c" > /dev/null
    Ich schätze, das die Datumsangabe nicht korrekt als String ausgegeben wird. Kann das sein?
     
Thema:

Shell Datum vergleichen nicht möglich (date als String)

Die Seite wird geladen...

Shell Datum vergleichen nicht möglich (date als String) - Ähnliche Themen

  1. Shell-Skript Datum in einer Datai suchen

    Shell-Skript Datum in einer Datai suchen: Hallo zusammen Ich komm eigentlich aus der Klicki-Bunti-Welt von Windows. Seit geraumer Zeit versuche ich meine Künste mit verschiedenen...
  2. [Tcl / Shell] Ändern einer Datei per vi - Änderungsdatum einer Datei erfassen

    [Tcl / Shell] Ändern einer Datei per vi - Änderungsdatum einer Datei erfassen: Hallo liebe Leute, ich habe zwei Probleme, die ich bisher nicht lösen kann, ich hoffe, ihr könnt mir hier weiterhelfen. Mein erstes Problem:...
  3. Datum,Name & Uhrzeit in einem Shell Script!

    Datum,Name & Uhrzeit in einem Shell Script!: Hallo liebe Community, Also zum Üben gilt es wieder einmal ein Beispiel zu lösen wozu ich jedoch eine Frage hätte. Das Beispiel lautet so,...
  4. Shell-Script > neustes Aenderungsdatum von mehreren Dateien auslesen

    Shell-Script > neustes Aenderungsdatum von mehreren Dateien auslesen: Hallo zusammen, Dies ist meiner erster Post, mit Boardsuche wurde ich leider nicht fündig, aber ich hoffe, jemand weiss Rat :)! Folgende...
  5. datums vergleich in der Shell

    datums vergleich in der Shell: hallo zusammen, ich parse Daten aus einen Logfile um Werte für einen gesamten Tag zu ermitten. Nun besteht die Anforderung das auf...