bash: Problem mit String-Vergleich

10/03/2009 - 18:22 von Florian Lindner | Report spam
Hallo,

ich will sicherstellen, dass ein bestimmter Server gestartet ist, wenn
ich mich per SSH auslogge. Dazu habe ich in .bash_logout ein paar Zeilen
ergànzt. Der Server ist ein Python-Skript, tritt also nur unter python
in ps auf, deshalb habe ich netstat verwendet, um zu schauen, ob jemand
auf Port 4000 lauscht.

active="$(netstat -A inet -l | grep "*:4000")"
echo $active # Debug

if [ "$active" == "tcp 0 0 *:4000 *:* LISTEN" ]
then
echo "Server làuft"
else
echo "!!!! SERVER LÄUFT NICHT !!!!"
fi

Wie ihr vermutlich seht, habe ich nicht so viel Ahnung von Bash Skript.
Der Code oben meint immer, dass der Server nicht làuft, obwohl die
Ausgabe von echo $active identisch mit dem Vergleichs-String ist.
Ich nehme an, dass in $active noch irgendwelche nicht druckbaren Zeichen
drinnstecken. Ich habe mal versucht mit "tcp 0 0 *:4000 *:* LISTEN" zu
vergleichen, das brachte aber ebenfalls kein Problem.
Was stimmt da noch nicht?
Natürlich bin ich auch offen für ganz andere Vorschlàge das selbe zu
erreichen.

Grüße & Danke,

Florian
 

Lesen sie die antworten

#1 Steffen Schuler
10/03/2009 - 19:19 | Warnen spam
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)

Florian Lindner wrote:
[...]
if [ "$active" == "tcp 0 0 *:4000 *:* LISTEN" ]
[...]



Versuch mal = anstatt ==.

Steffen Schuler (goedel)
Key ID: 0x42C5D853 / Key-server: pgp.mit.edu




Ähnliche fragen