Warum läuft dieses Skript nicht unter cygwin, wohl aber unter normalem Linux?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von mwebtopac, 22.07.2006.

  1. #1 mwebtopac, 22.07.2006
    mwebtopac

    mwebtopac Grünschnabel

    Dabei seit:
    22.07.2006
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo,
    es ist sicherlich nicht die feinste Art in seinem ersten Post gleich eine Frage zu stellen, aber ich weiß einfach nicht mehr weiter und hoffe inständig, dass ihr mir bei folgendem Problem helfen könnt.

    Warum läuft das folgende Skript, das ich von hier http://www.wer-weiss-was.de/theme13/article2034244.html habe und nur leicht modifiziert habe, zwar wunderbar unter Knoppix, aber nicht unter cygwin ?

    Code:
    #!/bin/sh
    
    for hostpart in `seq 1 5`
    do
            ping -c1 192.168.1.$hostpart >/dev/null 2>&1 &&
            echo -en '\e[32;01malive' ||
            echo -en '\e[31;01mdead'
            echo -e "\e[0m\t192.168.1.$hostpart"
    done
    

    Da cygwin ein anderes ping-Kommando nutzt, das den Parameter -c nicht anbietet, habe ich

    Code:
    ping -c1 192.168.1.$hostpart >/dev/null 2>&1 &&
    
    schon durch

    Code:
    ping 192.168.1.$hostpart [count 1] >/dev/null 2>&1 &&
    
    ersetzt. Jetzt läuft das Skript wenigstens ab. Es ist aber egal, ob die angepingten Computer online sind oder nicht. Das Skript meldet immer alive.
    Es sollte aber bei PCs, die eigentlich offline sind, dead anzeigen.
    Hilfe, ich habe alles probiert. Ich komme nicht mehr weiter. Für Hilfe wäre
    ich überaus dankbar.
     
  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. Spy

    Spy Grünschnabel

    Dabei seit:
    30.04.2006
    Beiträge:
    9
    Zustimmungen:
    0
    Hallo,

    ich bin da kein Shell-Freak. Aber teste doch mal den Ping befehl so ohne Skript und schaue ob es funzt.

    Wenn ja liegt es wohl an der Ausführung des Skripts. Wenn nicht dann eher am Befehl oder am System das der Befehl anderes sein muss..

    sonst nutze doch ne if anweisung..

    echo -en '\e[32;01malive' ||
    echo -en '\e[31;01mdead'


    vielleicht liegt das problem auch einfach nur an der anzeige..

    bye bye
     
  4. #3 mwebtopac, 23.07.2006
    mwebtopac

    mwebtopac Grünschnabel

    Dabei seit:
    22.07.2006
    Beiträge:
    2
    Zustimmungen:
    0
    Erstmal danke für deine Antwort

    Der Ping-Befehl an sich in der Form (Beispiel)
    Code:
    ping 192.168.1.1 [count 1]
    
    funktioniert prima.

    Ich glaube nicht, dass es an der Anzeige liegt, da
    ein simples Skript der Art
    Code:
    #!/bin/sh
    if ping 192.168.1.1 [count 1] > /dev/null 2>&1
    (unter normalem Linux: if ping -c1 192.168.1.1 > /dev/null 2>&1)
    then
      echo "Der Zielrechner ist online"
    else
      echo "Der Zielrechner ist offline"
    fi
    
    auch immer sagt, dass der Zielrechner online ist, egal ob er es nun wirklich ist oder nicht. Unter Knoppix hingegen funktioniert das Skript völlig normal.

    Sind vielleicht die Standardfehlerausgaben oder so anders?
    Liegt es an 2>&1 ?
     
  5. #4 Wolfgang, 23.07.2006
    Wolfgang

    Wolfgang Foren Gott

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

    Vorab: Cygwin hat mit der Shell - um die es in diesem Board geht - nix zu tun.
    Cygwin simuliert nur eine Shellumgebung, und unterscheidet sich wesentlich von einer echten Shell auf *nixuiden Systemen.

    Wie die Rückgabewerte unter Cygwin ausschauen weiss ich nicht.
    Dazu befragst du wohl besser eine entsprechende Community die sich mit Windows und Cygwin beschäftigt.

    2>&1 bedeutet unter einer echten shell, dass der Fehlerkanal zur Standardausgabe umgeleitet wird.
    Der Rückgabewert eines Befehl hat aber damit nix zu tun.
    In der echten Shell steht diese in der Variablen $?.
    Wie diese Werte auf entsprechende Fehler abgebildet sind, sagt dann die jeweilige Manpage des Befehles.

    Ob und wie das unter Windows geregelt ist, musst du eben deiner Hilfe entnehmen. Wie gesagt, ist hier wirklich OT.

    Gruß Wolfgang
    PS Das erste Posting mit einer Frage zu beginnen ist nicht schlimm, sondern sogar alltäglich und nich unerwünscht.
    Aber dabei solltest du schon darauf achten, ob die Frage auch zr Community passt, wenn du echte Hilfe erwartest.
    Zu Cygwin gibt es IMHO etliche Anlaufstellen im Internet.
     
  6. Anzeige

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

Warum läuft dieses Skript nicht unter cygwin, wohl aber unter normalem Linux?

Die Seite wird geladen...

Warum läuft dieses Skript nicht unter cygwin, wohl aber unter normalem Linux? - Ähnliche Themen

  1. Warum läuft linux nicht auf mein notebook??

    Warum läuft linux nicht auf mein notebook??: Servus, Habe ein problem, und zwar habe ich versucht ubuntu, mandriva,suse... live cd auf meinen notebook zu starten bzw installieren.Er bootet...
  2. awk: warum gibt close -1 zurück ?

    awk: warum gibt close -1 zurück ?: Hallo, bei diesem Gawk-Skript liefert close() ein -1 zurück. Warum ? Das File sortiert.txt wurde erfolgreich von sort angelegt ... Ist ein close...
  3. Warum wird meine Antwort von den Moderatoren nicht freigegeben

    Warum wird meine Antwort von den Moderatoren nicht freigegeben: Hallo, ich habe am 02.08. im Unterforum Shell-Skripte den Beitrag "Kurzzusammenfassung der Befehle und Progr. für die shell" erstellt....
  4. Warum wird die IP-Adresse aller Forumsnutzer ständig an yahoo weitergeleitet?

    Warum wird die IP-Adresse aller Forumsnutzer ständig an yahoo weitergeleitet?: Zugegeben, das ist etwas provokativ gefragt. Aber die IP-Adresse ist ein personenbezogenes Datum, was den Datenkraken immens hilfreich bei der...
  5. Ars Technica: Warum Mark Shuttleworth weiter in Canonical investiert

    Ars Technica: Warum Mark Shuttleworth weiter in Canonical investiert: Canonical könnte heute bereits profitabel arbeiten, doch die Entwicklung der kommenden Ubuntu-Produkte verschlingt zunächst einmal viel Geld....