Problem mit if-Schleife

Diskutiere Problem mit if-Schleife im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hi! Ich bin zu dumm, eine if-Schleife zu bauen, hier ein exemplarischer Auszug. Es soll die Programmversion ermittelt werden und entsprechend...

  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. Netzwerkproblem ? , wo ud wie suchen

    Netzwerkproblem ? , wo ud wie suchen: Hallo Folgende Problem: Testserver ist i686 Debian-unstable , auf dem läuft primär der apt-proxy apt-cahcer ng. Zugriff im Moment nur per ssh....
  2. Verständnisproblem Samba / LDAP

    Verständnisproblem Samba / LDAP: Hallo zusammen! Ich habe unter Ubuntu 16.04 einen LDAP und Samba Server aufgesetzt. Diese scheinen auch ordnungsgemäß zu funktionieren, sodaß ich...
  3. nginx+php-fpm problem

    nginx+php-fpm problem: Moin, ich hab hier gerade ein Problem und keine Idee mehr woran es liegt. Ich muss wie schon in der Überschrift erwähnt nginx dazu bringen php...
  4. Problem mit Windows auf Ordner auf dem Linuxsystem zuzugreifen

    Problem mit Windows auf Ordner auf dem Linuxsystem zuzugreifen: Ich mache gerade meine ersten Schritte mit Linux und würde gerne auf Dateien meines Linuxsystems auch mit Windows zugreifen, ich bin am...
  5. Virtualboxproblem

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