Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Numerischer-Vergleich [BASH]

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.06.2003
    Ort
    Köln
    Beiträge
    52

    Numerischer-Vergleich [BASH]

    Moin zusammen,

    ich möchte in einer If-Abfrage abfragen, ob der Wert in einer Variable numerisch ist.

    Könnt ihr mir dabei weiterhelfen ?

    cu
    ExeCRabLE
    Unwissenheit ist Staerke

  2. #2
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    weiß selbst keinen direkten Weg, aber du kannst ja die Variablen mit test und den Optionen ne, gt, lt, etc. ansprechen. Wenn deine Variable nicht numerisch ist, erfolgt eine Fehlerausgabe, welche du ausweten kannst.

    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  3. #3
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    wenn man PHP instaliiert hat ists OK, aber wenn man das Script auf fremden Rechnern laufen läßt, wirds kompliziert. Bleiben nach meiner Auffassung nur folgende Wege

    • wie Eingangs von mir beschrieben
    • mit awk. Da kann man ja Zeichenketten beliebig zerlegen und untersuchen
    • mit cut. Wie awk, aber eben mehr auf Shellebene


    Alles nicht der Hammer, aber durchführbar hier mal eine Beispiel, wie cut angewendet werden könnte
    Code:
    [hans@rosi my]$ echo 123| cut --bytes=2
    2
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  4. #4
    Registrierter Benutzer
    Registriert seit
    29.12.2001
    Ort
    Berlin
    Beiträge
    231
    Wo eine Shell ist, ist meist auch Perl
    Daher :
    Code:
    #!/bin/sh
    # Test auf numeric
    TE="1"
    NUM=$(perl -e "print $TE*1;")
    if [ -z $NUM ]; then
        echo "keine Zahl"
    else
        echo "eine Zahl"
    fi
    T;o)Mes
    ************************************************
    Man(n oder Frau) muss nicht alles wissen,
    Man(n oder Frau) muss nur wissen wo es steht !
    ************************************************
    http://www.sandtom.net
    ICQ 176436259

  5. #5
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615
    Original geschrieben von tomes
    Wo eine Shell ist, ist meist auch Perl
    Träum weiter
    Auf keinen der von mir administrierten Server ist ein Perl installiert.
    Wozu auch?
    Bodo
    Systemadmistration UNIX

  6. #6
    Registrierter Benutzer
    Registriert seit
    29.12.2001
    Ort
    Berlin
    Beiträge
    231
    Wozu auch? [/B]
    Webserver --> cgi
    Mailserver --> spamassasin

    Und auch sonst noch ganz nuetzlich.

    Also nur fuer dich -->
    Code:
    #!/bin/sh
    
    D=$(( $1*1 ))
    if [ $1 == "0" ]; then
        echo "Variable ist 0"
    else
        if [ $D -eq "0" ]; then
            echo "Variable ist keine Zahl"
        else
            echo "Variable ist eine Zahl"
        fi
    fi
    
    echo $D
    Kann sein, dass es bei irgend einer Variable nicht "funct". Habe nur mit ganzen Zahlen, 0 und Buchstabenfolgen getestet.
    Aber es ist auf alle Faelle ein Anfang.

    T;o)Mes

    P.S.: Wenn du kannst, schreib dir ein kleines C/C++ *prog* was nur die numeric ueberprueft (Vielleicht gibt es ja auch so etwas)
    ************************************************
    Man(n oder Frau) muss nicht alles wissen,
    Man(n oder Frau) muss nur wissen wo es steht !
    ************************************************
    http://www.sandtom.net
    ICQ 176436259

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •