Bash-Script Frage

Jan-Benedict Glaw jbglaw at lug-owl.de
Sa Mär 10 13:00:23 CET 2007


On Sat, 2007-03-10 12:06:46 +0100, Martin JĂ€ger <gipsde at gmx.net> wrote:
> Hallo,
> ich möchte ein Script basteln, welches Skype startet, sofern es noch nicht 
> lÀuft.
> Folgende Zeile in der bash liefert ein korrektes Ergebnis:
> >>>>>>>>>>>>>>>
> >user at rechner:/home/scripts$ if [ "$(ps ax|grep -i "[s]kype")" ]; then echo 
> "Skype lÀuft"; else echo "Skype lÀuft nicht";fi
> 
> >Skype lÀuft nicht
> <<<<<<<<<<<<<<
> 
> Daraus habe ich folgendes Script gebastelt:
> >>>>>>>>>>>>>>
> #!/bin/bash
> #startet Skype, sofern es noch nicht laeuft
> 
> 
> if [ "$(ps ax|grep -i "[s]kype")" ]
> then
>                 echo "Skype laueft"
> else
>                 echo "Skype laeuft nicht. Starte Skype..."
>                 /usr/bin/skype &
> fi
> <<<<<<<<<<<<<<
> 
> Doch dieses liefert mir nur die falsche Angabe:
> >>>>>>>>>>>>>>
> user at rechner:/home/scripts$ ./skype_start.sh
> Skype laueft
> <<<<<<<<<<<<<
> 
> Kann mir jemand dieses Verhalten erklÀren ?

'ps' und 'grep' werden parallel gestartet. Du kannst in der Ausgabe
von 'ps' also unter UmstÀnden schon den laufenden grep-Befehl samt
seinem Argument (skype!) sehen.


Versuchs mal mit z.B.


#!/usr/bin/env sh

if pidof skype > /dev/null; then
	echo "Skype lÀuft"
else
	nohup skype > /dev/null 2>&1 < /dev/null &
fi


MfG, JBG


-- 
      Jan-Benedict Glaw      jbglaw at lug-owl.de              +49-172-7608481
Signature of:                   ...und wenn Du denkst, es geht nicht mehr,
the second  :                          kommt irgendwo ein Lichtlein her.
-------------- nächster Teil --------------
Ein Dateianhang mit BinÀrdaten wurde abgetrennt...
Dateiname   : nicht verfĂŒgbar
Dateityp    : application/pgp-signature
DateigrĂ¶ĂŸe  : 189 bytes
Beschreibung: Digital signature
URL         : http://www.tlug.de/pipermail/tlug_allgemein/attachments/20070310/301eef8e/attachment.pgp