Problem mit if-Schleife

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von logout, 22.10.2004.

  1. logout

    logout Grünschnabel

    Dabei seit:
    22.10.2004
    Beiträge:
    7
    Zustimmungen:
    0
    Hi!

    Ich bin zu dumm, eine if-Schleife zu bauen, hier ein exemplarischer Auszug. Es soll die Programmversion ermittelt werden und entsprechend soll eine Variable gesetzt werde:


    #!/bin/bash
    shellvers=$(/bin/bash --version|head -1|cut -c 19-23)

    echo "testweise Ausgabe der ermittelten Version:"
    echo $shellvers

    if [ $shellvers="4.0" ]; then
    echo okay
    fi

    Das mit der Bash-Version ist ein Bsp, ich weiß, dass das auch anders geht, mir geht es nur um die Schleife.

    Also, auf den meisten Systemen wird $shellvers 2.0b oder 3.0 ergeben, die if-Bedingung wird trotzdem postiv erfüllt, obwohl $shellvers niemals "4.0" sein kann... warum?

    Warum wird diese if-Bedingung positiv erfüllt, obwohl $shellvers niemals den Wert 4.0 hat. wo is das der Fehler?
     
  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
    = != ==

    Gruss, Phorus
     
  4. Phate

    Phate Frickler/Kellerkommunist

    Dabei seit:
    08.02.2004
    Beiträge:
    261
    Zustimmungen:
    0
    Ort:
    Rheinland

    :finger:
     
  5. fossy

    fossy - dead -

    Dabei seit:
    26.03.2004
    Beiträge:
    274
    Zustimmungen:
    0
    btw: set| grep -i bash_v

    gruss, fossy.
     
  6. sowatt

    sowatt Foren As

    Dabei seit:
    19.03.2003
    Beiträge:
    94
    Zustimmungen:
    0
    Ort:
    Hamburg
    Nun macht's ihm doch nicht so schwer... ;)

    Wenn Du if benutzt(was definitiv keine Schleife ist) dan fragst Du
    z.B. ob eine Variable einen Wert hat der gleich was auch immer ist.
    Das machst Du mit dem Vergleichsoperator ==

    Du hast deiner Variablen einen Wert zugewiesen, das machst Du mit =

    Wenn Du auf ungleichheit prüfen willst nimmst Du den Negationsoperator
    und den Zuweisungsoperator, also !=

    MfG
    sowatt
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. rup

    rup Haudegen

    Dabei seit:
    10.04.2002
    Beiträge:
    627
    Zustimmungen:
    0
    Code:
    if [ "$shellvers" == "4.0" ]
    then
         echo ok
    fi
    
     
  9. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Nochmal zur Richtigstellung: a="wert" übergibt a den Wert "wert". Der Grund, warum if [ a="wert" ] immer true ist, liegt daran, dass bei fehlerfreier Übergabe der Fehlercode 0 an if zurückgegeben wird, was als true interpretiert wird.

    Ist übrigens 'ne gern genommene Prüfungsfrage in UNIX/C: in C ist !0 true, in UNIX 0.

    Gruss, Phorus
     
Thema:

Problem mit if-Schleife

Die Seite wird geladen...

Problem mit if-Schleife - Ähnliche Themen

  1. Virtualboxproblem

    Virtualboxproblem: Hallo Folgnedes Problem: Ich kann ohne Probleme In Debian-Sid, 64Bit und virtualbox-dkms Unixoide installieren, wenn es sich um eine...
  2. grub-pc Probleme bei upgrade

    grub-pc Probleme bei upgrade: Hallo, ich habe beim dist-upgrade folgendes Problem: ---------- Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Trigger für...
  3. Problem bei apt-get upgrade (Kali 2.0)

    Problem bei apt-get upgrade (Kali 2.0): Hi, seit paar Tagen habe ich einige Probs. Dachte es sei mal an der Zeit für ein Update und nun tauchen da einige Fehler auf: Es müssen noch 0 B...
  4. Probleme mit YUM

    Probleme mit YUM: Hallo, ich habe CentOs 7 als Dualboot mit Windows 7 auf einen Dell Latitude E5510 installiert. Dies hat soweit auch alles geklappt. Leider habe...
  5. Problem mit Win-Zugriff auf SAMBA

    Problem mit Win-Zugriff auf SAMBA: Hallo rundherum, vielleicht hat jemand eine Idee... Habe jetzt schon 1 1/2 Tage damit verbraten und den Fehler nicht gefunden. Problem:...