Shell Script Problem

  • Hallo,
    ich habe folgendes Problem.
    Ich möchte meine aktuelle IP mit einer bestimmten IP vergleichen.
    Dazu habe ich folgendes Shell Script



    Bash
    #!/bin/sh
    ip= /sbin/ifconfig venet0:0 | grep 'inet Adresse' | awk -F: '{$2}' | awk '{$1}';
    if [ "88.12.45.32" = "$ip" ]; then
    echo "Ist gleich!"else
    echo "Ist nicht gleich!"
    fi


    Doch er sagt mir immer an, dass die IP nicht gleich ist, obwohl sie gleich ist!
    Im Internet hatte ich das gefunden um mir die IP Adresse anzeigen zu lassen

    Code
    /sbin/ifconfig venet0:0 | grep 'inet Adresse' | awk -F: '{print $2}' | awk '{print $1}


    Für mein Shell Script habe ich nur das print entfernt, da ich ja keine Ausgabe haben möchte


    Weiss jemand wo der Fehler ist?



  • MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Bash
    #!/bin/bash
    my_ip=$(ifconfig eth0 | head -n2 | tail -n1 | cut -d: -f2 | cut -d" " -f1)
    check_ip="88.12.45.32"
    if [ $check_ip -eq $my_ip ]; then
        echo "Gleiche Adresse."
    else
        echo "Nicht gleiche Adresse."
    fi


    Ein grep auf "inet Adresse" würde ich meiden da dies bei anderen gesetzten locales nicht mehr funktionieren wird ;)

  • Vielen Dank für die schnelle Antwort. Hat geklappt, dann doch direkt noch eine Frage :D


    Und zwar brauche ich nun die IP die durch die Abfrage herauskommt ifconfig eth0 | head -n2 | tail -n1 | cut -d: -f2 | cut -d" " -f1 zerlegt.
    Nehmen wir an wir haben die IP: 12.24.31.13
    Dann möchte ich mit $ip1 die 12 ausgegeben haben, mit $ip2 die 24 und so weiter.
    Von mir aus können die Variablen auch anders heissen.
    Wie bekomme ich das hin. Irgendwie mit grep, ich weis aber nicht wie :)

  • Code
    my_ip=$(ifconfig eth0 | head -n2 | tail -n1 | cut -d: -f2 | cut -d" " -f1)
    my_ip_o1=$(echo ${my_ip} | cut -d"." -f1)
    my_ip_o2=$(echo ${my_ip} | cut -d"." -f2)
    my_ip_o3=$(echo ${my_ip} | cut -d"." -f3)
    my_ip_o4=$(echo ${my_ip} | cut -d"." -f4)
  • ipconfig ist deprecated. Viele Distributionen dürften das bald gar nicht mehr ausliefern, die interne Konfiguration wird damit ja auch schon länger nicht mehr gemacht.


    Julius, an mehrere IP-Adressen und/oder/sowie IPv6 denkst du auch? Wenn du kein IPv6 nutzt, dann benutze doch einfach Hostname in Verbindung mit 'nem Array...

    "Security is like an onion - the more you dig in the more you want to cry"

  • ifconfig | grep "Bcast" | cut -d ':' -f2 | cut -d ' ' -f1 | diff <(cat -) <(echo '132.168.200.98') | grep "<" | cut -d ' ' -f2 | sed 's/\./ /g'


    Gibt "Nichts" aus, wenn die IPs gleich sind, sonst die, die nicht die Konstante ist ..

    vServer Light NETCup Kunde mit Debian Squeeze 64Bit :)
    (Drupal CMS Fan.)