Hilfe bei Shellscript erbeten

Andre Landwehr andrel at cybernoia.de
Thu Apr 17 13:27:48 CEST 2008


On Thu, 17 Apr 2008 13:17:56 +0200
Jan-Benedict Glaw <jbglaw at lug-owl.de> wrote:

> On Tue, 2008-04-15 19:06:08 +0200, Lukas Kolbe <lukas at knup.de> wrote:
> > > Wie auch immer, man muss ein "killall soffice" absetzen, um danach
> > > Openoffice wieder starten zu können. Ich möchte dafür einen Panik-Knopf
> > > hinterlegen. Das zugehörige Bashscript stelle ich mir so vor:
> > > 
> > > set num = $( ps aux |grep soffice |wc -l ) - 1
> > 
> > Wenn du das so implementieren willst, hilft
> > 
> > num=$(($(ps aux|grep soffice|wc -l) - 1))
> 
> Und weil in 'grep soffice' ein 'soffice' vorkommt, ziehst Du hinterher
> wieder eins ab? Was, wenn die shell noch dabei ist, den grep zu
> starten? Dann bekommst Du eins zuwenig dabei heraus...
> 
> pgrep!

und wenn schon normales grep, dann gleich ganz richtig:
ps aux |grep soffice |grep -v "ps ax" |grep -v "grep" |wc -l

> > (ohne Leerzeichen vor und nach '=', in $(( )) steht aun arithmetischer
> > Ausdruck, in $( ) wird ein Kommando ausgeführt)
> > 
> > 
> > > if [ test $num == "0" ] ; then
> 
> Was ist das denn?
> 
> if [ $num = 0 ]; then
> 	...
> fi

Alternativ könnte man $num auch als Zahl behandeln und nicht als String
(denn nur die vergleicht man mit '=' oder '==')
if [ $num -eq 0 ]; then
	...
fi

> "[" _ist_ doch gerade bereits schon 'test'! Und '==' ist akzeptiert,
> aber nicht portabel. Die null muß zudem nicht gequoted werden, mit der
> kann ja nichts mehr passieren.

Gruß, Andre

-- 
Andre Landwehr, Ricklinger Stadtweg 42, D-30459 Hannover
Phone: +49-(0)511-1054932, Mobile: +49-(0)175-4648375

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lug-owl.de/pipermail/linux/attachments/20080417/e11acb10/attachment.sig>


More information about the Linux mailing list