if macht nicht was es soll

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von tennessee, 26.04.2006.

  1. #1 tennessee, 26.04.2006
    tennessee

    tennessee Linuxfan

    Dabei seit:
    22.04.2006
    Beiträge:
    134
    Zustimmungen:
    0
    hallo zusammen,

    ich möchte einen Textstring vergleichen was aber nicht funktioniert.
    Das Script läuft zwar mach aber immer nur den then Teil und nie das else
    Egal welchen Wert ich in MEIER eingebe.
    Zwei Varianten habe ich getestet beide funzen nicht. Muß wohl am Syntax liegen.


    #!/bin/bash
    export MEIER="green"
    if (($MEIER==red))
    then
    echo "CRITICAL"
    else
    echo "no CRITICAL"
    fi

    #!/bin/bash
    export MEIER="green"
    if (("$MEIER"=="red"))
    then
    echo "CRITICAL"
    else
    echo "no CRITICAL"
    fi
     
  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. #2 supersucker, 26.04.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    das ist ein gleichheitszeichen zuviel in der if-abfrage.

    das ist in der bash äußerst gewöhnungsbedürftig, da man das von fast jeder anderen sprache anders kennt.

    also:

    statt

    Code:
    if($bla==blub)
    Code:
    if($bla=blub)
     
  4. #3 tennessee, 26.04.2006
    tennessee

    tennessee Linuxfan

    Dabei seit:
    22.04.2006
    Beiträge:
    134
    Zustimmungen:
    0
    heissen dank, da hätte ich bestimmt nie angesetzt ohne voheriges umständliches googlen :D
     
  5. hehejo

    hehejo blöder Purist

    Dabei seit:
    12.10.2003
    Beiträge:
    1.280
    Zustimmungen:
    0
    Ort:
    Stein (Mittelfranken)
    Ein man test hätte gereicht.
     
  6. #5 tennessee, 26.04.2006
    tennessee

    tennessee Linuxfan

    Dabei seit:
    22.04.2006
    Beiträge:
    134
    Zustimmungen:
    0
    leider funzt es nicht :(
     
  7. Zico

    Zico Lebende Foren Legende

    Dabei seit:
    16.04.2004
    Beiträge:
    1.559
    Zustimmungen:
    0
    Wie wärs denn mal wenn du mal fix die Fehlermeldung postest? Vllt isses ja nur ein kleiner Syntaxfehler.
     
  8. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Die doppelten runden Klammern sind in bash fuer arithmetische Ausdruecke da.
    versuch mal
    Code:
    if [ "$MEIER = green" ] ; then echo green; fi
    
     
  9. #8 Schlaubi_fi.de, 26.04.2006
    Zuletzt bearbeitet: 26.04.2006
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Hallo,

    entweder Du gehst über test oder Du machst das direkt mit der Bash...

    Entweder so (mit test):
    Code:
    #!/bin/bash
    export MEIER="green"
    if test $MEIER == red
    then
    echo "CRITICAL"
    else
    echo "no CRITICAL"
    fi
    
    #!/bin/bash
    export MEIER="green"
    if test "$MEIER" == "red"
    then
    echo "CRITICAL"
    else
    echo "no CRITICAL"
    fi
    oder direkt in der bash:
    Code:
    #!/bin/bash
    export MEIER="green"
    if [[ $MEIER == red ]]
    then
    echo "CRITICAL"
    else
    echo "no CRITICAL"
    fi
    
    #!/bin/bash
    export MEIER="green"
    if [[ "$MEIER" == "red" ]]
    then
    echo "CRITICAL"
    else
    echo "no CRITICAL"
    fi
     
  10. #9 Wolfgang, 26.04.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Code:
    $ export MEIER="green"; if [ "$MEIER" = "blue" ] ; then echo gefunden MEIER ist $MEIER ; else echo "nicht gefunden Meier is $MEIER"; fi
    [i]nicht gefunden Meier is green[/i]
    
    $ export MEIER="green"; if [ "$MEIER" == "blue" ] ; then echo gefunden MEIER ist $MEIER ; else echo "nicht gefunden Meier is $MEIER"; fi
    [i]nicht gefunden Meier is green[/i]
    
    
    $ bash --version
    GNU bash, version 3.00.16(1)-release (i386-pc-linux-gnu)
    Copyright (C) 2004 Free Software Foundation, Inc.


    HTH
    Gruß Wolfgang
     
  11. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  12. #10 tennessee, 26.04.2006
    tennessee

    tennessee Linuxfan

    Dabei seit:
    22.04.2006
    Beiträge:
    134
    Zustimmungen:
    0
    hallo Leute danke für die Antworten so funktionierts!


    #!/bin/bash
    wert="red"
    if test $wert = "red"
    then
    echo "CRITICAL"
    else
    echo "no CRITICAL"
    fi
    :))
     
  13. #11 Wolfgang, 26.04.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Nochmal zur Klarstellung:

    if [ "$VAR"="WERT" ] geht nicht.
    if [ "$VAR" = "WERT" ] geht.
    if [ "$VAR=WERT" ] ist auch nicht das was du erwartest. ;)
    if [ "$VAR" == "WERT" ] geht aber auch.
    Ansonsten sein angemerkt, dass [ für test steht!

    HTH
    Gruß Wolfgang
     
Thema:

if macht nicht was es soll

Die Seite wird geladen...

if macht nicht was es soll - Ähnliche Themen

  1. VLC macht hat kann requirements bei Update nicht lösen

    VLC macht hat kann requirements bei Update nicht lösen: Hallo, Für VLC steht ein Update an, jedoch kann ich es nicht installieren, da diese Meldung immer kommt: vlc-noX-2.0.6-14.1.x86_64 requires...
  2. rc.local macht nicht, was es soll

    rc.local macht nicht, was es soll: Hallo, ich habe eine funktionierende Installation unter Ubuntu 6 & OOO 2.0 In etc/rc.local habe ich eine Datei /Verzeichnis/ooo.sh &...
  3. Ausgabe in Datei wird nicht gemacht

    Ausgabe in Datei wird nicht gemacht: Da mein Erster Therd leider zu schnell ins php forum abgeschoben worden ist ... Leider Funktioniert die Ausgabe nicht in die Datei...
  4. SUSE macht von einer auf die andere Sekunde nichts mehr

    SUSE macht von einer auf die andere Sekunde nichts mehr: Mein Suse 10.2 hängt sich regelmäßig auf einmal auf. Das Bild bleibt einfach stehen und ich kann nichts mher machen. Ich kann nur noch auf Reset...
  5. laptop macht nicht mehr lange...

    laptop macht nicht mehr lange...: Hi Leute, seit kürzerem habe ich ein Problem mit meinem Laptop, dass mich immer mehr beunruhigt... Zwar habe ich das Problem, wenn ich in die...