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