In einem erschaffenen init.s-start/stop-script habe ich die Prozessnummer des zu steuernden Programmes herausgeschnitten
und möchte diese auswerten.
Mit -gt, -lt, -eq geht das nicht, weil wenn das Programm nicht läuft diese Auswertung dann leer bleibt und derTest über
den Datentyp nichtnumerisch meckert.
Mit folgender Konstruktion geht das.
Code: Alles auswählen
if [ $PRGID -a " " ]
... der Script-Name muss anders als der Programm-Name lauten!
... die Logik ist genau anders herum, als ich mir das vorstelle:
Meine Vorstellung: leere Variable $PRGID UND Leerstelle wahr, dann ..., aber es ist genau dann nicht

Code: Alles auswählen
PRGID=`ps -ef|grep dnrd|grep -v grep|tr " " ":"|tr -s :|cut -f2 -d:`
status)
if [ $PRGID -a " " ]
then
echo "Programm-ID ist $PRGID"
else
echo "Programm wurde gestoppt"
fi
;;
Seltsam oder erklärbar?
Benenne ich den Aufruf geauso wie das Programm, auch dnrd, dann
Code: Alles auswählen
./dnrd status
./dnrd: line 33: [: too many arguments
Programm wurde gestoppt
Viele Grüße
Joe