In der Manpage steht das ping 3 Errorcodes liefert. 1 u 2 bei Fehler, 0 ist i.O., Wie kann ich diese in einem Shellscript unterbringen ? Hintergrund: ich brauche ein script, welches per ping, die Namensaufloesung und das Vorhandensein eines ftp servers checkt, wenn alles i.O. wird ein upload durgefuehrt, wenn nicht wird dieser Schritt ueber- sprungen.
Wenn Du im Skript die normale bash nutzt (erste Zeile=#!/bin/sh) dann z.B. ping -c 1 recher if [ $? -eq 0 ] ; then ftp ......... fi Zur Erklaerung: $? enthaelt den Error-Code des letzen Befehls. Die if-Konstrukte haegen von den Shells ab, bei der csh, tcsh sieht das etwas anders aus, aber das prinzip ist das gleiche. Gruss Peter -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Am Die, 12 Jan 1999 schrieb Peter Schmidmaier:
Wenn Du im Skript die normale bash nutzt (erste Zeile=#!/bin/sh) dann z.B. ping -c 1 recher if [ $? -eq 0 ] ; then ftp ......... fi
Zur Erklaerung: $? enthaelt den Error-Code des letzen Befehls. Die if-Konstrukte haegen von den Shells ab, bei der csh, tcsh sieht das etwas anders aus, aber das prinzip ist das gleiche.
Peter hat recht, aber es geht auch kürzer: #! /bin/sh ... if ping -c 1 rechner then ftp .... fi ... Denn if fragt genau wie while nach dem Errorcode. Meist wird test genommen, bzw. sein Synonym "[ ... ]". test macht nichts anderes als Errorcode zu liefern. Man kann aber auch nach ganz "normale" Befehle benutzen. Es gilt Errorcode gleich Null -> richtig Errorcode ungleich Null -> falsch cu Bernd -- Bernd Brodeßer Mönchengladbach B.Brodesser@online-club.de -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
participants (2)
-
B.Brodesser@online-club.de
-
schmidma@informatik.hu-berlin.de