test auf " "
Posted: 27. Mar 2007 12:28
Hallo Leute,
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.
Aber ...
... 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
Seltsam oder erklärbar?
Benenne ich den Aufruf geauso wie das Programm, auch dnrd, dann
=LÜGE
Viele Grüße
Joe
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: Select all
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: Select all
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: Select all
./dnrd status
./dnrd: line 33: [: too many arguments
Programm wurde gestoppt
Viele Grüße
Joe