variablen vergleichen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von oyster-manu, 11.01.2006.

  1. #1 oyster-manu, 11.01.2006
    oyster-manu

    oyster-manu toast

    Dabei seit:
    26.06.2003
    Beiträge:
    1.055
    Zustimmungen:
    0
    hallo.
    ich suche eine möglichkeit variablen miteinander zu vergleichen. ich habs mit diff probiert, allerdings geht weder
    diff -q `$var1` `$var2`
    oder
    diff -q "$var1" "$var2"
    oder
    diff -q '$var1' '$var2'

    habs auch mal ganz ohne anführungszeichen probiert, aber nichts klappt.
     
  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. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    diff vergleicht in der Regel Files. Vielleicht solltest Du den Variableninhalt in Files umleiten und diese dann mit diff untersuchen.

    Was steht in den Variablen? Willst Du sie numerisch vergleichen oder als String? Schau mal in die Manpage von test.

    Gruss, Phorus
     
  4. #3 MrFenix, 11.01.2006
    MrFenix

    MrFenix Executor

    Dabei seit:
    16.10.2004
    Beiträge:
    480
    Zustimmungen:
    0
    Ort:
    Siegen, NRW
  5. #4 oyster-manu, 11.01.2006
    Zuletzt bearbeitet: 11.01.2006
    oyster-manu

    oyster-manu toast

    Dabei seit:
    26.06.2003
    Beiträge:
    1.055
    Zustimmungen:
    0
    @phorus: in dateien umleiten find ich immer nervig. die muss man ja nachher löschen :) in den variablen sind md5summen (also strings)
    @mr fenix: jau das isses!

    //EDIT: verflucht. es gibt zwar keine fehlermeldung, aber irgendwas scheint bei dem test nicht zu funktionieren.
    wenn ich 2 unterschiedliche dateien vergleichen lasse, erscheint trotzdem die meldung dass die dateien übereinstimmen. hier mal der code:
    Code:
    #!/bin/bash
    
    echo "Die Checksummen werden berechnet..."
    checksum1=`echo $1 | md5sum`
    checksum2=`echo $2 | md5sum`
    echo "Checksummen wurden berechnet."
    if [ -eq $var1 $var2 ]; then
    echo "Die Dateien sind gleich."
    else
    echo "WARNUNG: Die Dateien sind NICHT gleich."
    fi
    
    kanns vllt daran liegen dass md5sum die summen mit leerzeichen ausgibt und diese test -eq aus dem tritt bringen?
    die summen sehen nämlich so aus (ohne "): "ac78n289sfvnb2789n - "
     
  6. #5 Xanti, 11.01.2006
    Zuletzt bearbeitet: 11.01.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Mit -eq vergleichst Du die Variablen numerisch. Wenn Du Strings vergleichen willst, zitier ich nochmal die manpage von test:

    Code:
         s1 = s2       True if the strings s1 and s2 are identical.
    
         s1 != s2      True if the strings s1 and s2 are not identical.
    
         s1 < s2       True if string s1 comes before s2 based on the binary value
                       of their characters.
    
         s1 > s2       True if string s1 comes after s2 based on the binary value
                       of their characters.
    
    Also

    Code:
    if [ $var1 = $var2 ]; then
      echo "Die Dateien sind gleich."
    else
      echo "WARNUNG: Die Dateien sind NICHT gleich."
    fi
    
     
  7. #6 oyster-manu, 11.01.2006
    Zuletzt bearbeitet: 11.01.2006
    oyster-manu

    oyster-manu toast

    Dabei seit:
    26.06.2003
    Beiträge:
    1.055
    Zustimmungen:
    0
    ich bedanke mich recht herzlich! ;)

    //EDIT:
    hm. jetzt funktionierts leider auch nicht. es gibt mittendrin ne (fehler-)meldung:

    es kommt immer zu dieser ausgabe, ob die dateien gleich sind oder nich. komischerweise sind die checksummen ebenfalls unterschiedlich auch wenn die dateien identisch sind (die cecksummen sind nur identisch, wenn man sie mit md5sum "per hand" berechnen lässt).
    muss ich nach beenden des skripts die variablen-inhalte löschen? liegts vllt daran?
     
  8. #7 ninguno, 11.01.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    probiers mal so
    Code:
    checksum1=$(md5sum $1|cut -d' ' -f1)
    checksum2=$(md5sum $2|cut -d' ' -f1)
    if [ $checksum1 = $checksum2 ]; then
    ...
     
  9. #8 oyster-manu, 11.01.2006
    oyster-manu

    oyster-manu toast

    Dabei seit:
    26.06.2003
    Beiträge:
    1.055
    Zustimmungen:
    0
    puh. und ich dachte das wird ein simples einsteiger skript. schade. was genau bedeuten die ` hinter cut -d?
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 ninguno, 11.01.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    md5sum liefert als ausgabe nicht nur die checksum sondern auch den dateinamen
    Code:
    $ md5sum dateixy
    6539aac4bceb3ff808ebbd3d11e2ee8f dateixy
    mit dem | cut -d' ' -f1 wird die 2. spalte der ausgabe also der dateiname weggeschnitten
     
  12. #10 Wolfgang, 11.01.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Die Manpage von cut sagt dir, dass die Option -d den Feldtrenner bestimmt.:rtfm: :devil:
    In diesem Fall ist es schlicht ein Leerzeichen, auch Space genannt.

    Gruß Wolfgang
     
Thema: variablen vergleichen
Besucher kamen mit folgenden Suchen
  1. linux variablen vergleichen

    ,
  2. bash if zwei variablen vergleichen

    ,
  3. bash variablen vergleichen

    ,
  4. bash integer vergleichen,
  5. bash if zahlen vergleiche,
  6. ubuntu variablen vergleichen,
  7. bash zahlen vergleichen,
  8. bash variable vergleich numerisch,
  9. bash string vergleichen
Die Seite wird geladen...

variablen vergleichen - Ähnliche Themen

  1. Umgebungsvariablen vergleichen von 2 unterschiedlichen Servern

    Umgebungsvariablen vergleichen von 2 unterschiedlichen Servern: Hallo Zusammen, Situation: Ich habe 2 Server. Dort wird ein Java Programm ausgeführt. Auf dem einen Server klappt es - auf dem anderen wird eine...
  2. Linux 4.5 will UEFI-Variablen besser schützen

    Linux 4.5 will UEFI-Variablen besser schützen: Das Löschen bestimmter UEFI-Variablen kann manche Rechner nicht mehr startbar machen. Das kommende Linux 4.5 ergreift Maßnahmen dagegen, die im...
  3. Textdatei zeilenweise in durchnummerierte Variablen schreiben

    Textdatei zeilenweise in durchnummerierte Variablen schreiben: Hi Leute, ich versuche folgendes Problem zu lösen. Ich möchte eine Textdatei einlesen und den Inhalt jeder Zeile in immer eine neue Variable...
  4. mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern

    mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern: Hallo zusammen, es geht um folgenden Teil meiner .sh-Datei: NumberCheck=`mysql $SQL_ARGS "SELECT lkw, Firma FROM adb_group WHERE...
  5. Teil einer Variablen auslesen und in neue Variable schreiben

    Teil einer Variablen auslesen und in neue Variable schreiben: Hallo, ist für Euch bestimmt ganz einfach, aber trotz googlen komme ich nicht auf eine Lösung. In Variable x habe ich stehen: xy,ab Nun möchte...