Re: ssh Frage

From: Manfred Lotz <manfred.lotz(at)web.de>
Date: Fri, 19 Mar 2004 06:37:52 +0100

At Thu, 18 Mar 2004 09:09:53 +0100 (CET),
Oliver Fromme wrote:
>
> Manfred Lotz <manfred.lotz(at)web.de> wrote:
> > Oliver Fromme wrote:
> > >
> > > Manfred Lotz <manfred.lotz(at)web.de> wrote:
> > > > somescript.sh:
> > > > #! /bin/sh
> > > > while [ true ];do
> > >
> > > Interessante Art, 'ne Endlosschleife zu machen. :-)
>
> Um mal etwas zu elaborieren: [ true ] ist nichts weiter
> als ein Test, ob der angegebene String nicht leer ist.
> Du kannst auch ebensogut »while [ false ]; ...« schreiben
> und würdest trotzdem eine Endlosschleife erhalten.
> Es ist also eher keine gute Idee, es so zu machen.
>
> > > > sleep 5
> > > > done
> > > >
> >
> > Ja, ich bin nicht so bewandert im scripting und dies kam dabei raus. Was
> > ist denn der einfachste Weg für eine Endlosschleife? Mir ist jetzt
> > immerhin noch
> > while ( sleep 5 );do ;done
> > eingefallen.
>
> Das ist auch eher unorthodox, aber funktioniert. :-)
> Die runden Klammern sind aber überflüssig (damit machst Du
> nur eine zusätzliche Subshell auf, die aber nicht nötig
> ist). Im allgemeinen ist es aber -- genau wie in C und an-
> deren Programmiersprachen -- empfehlenswert, den Body der
> Schleife nicht für die Schleifenbedingung zu mißbrauchen,
> um die Selbstdokumentation des Codes zu verbessern.
>
> Am einfachsten ist dies: while :; do sleep 5; done
> »:« ist ein Shell-builtin und funktioniert ansonsten wie
> /bin/true.
>

Vielen Dank.

>
> Und wo wir gerade bei obskuren Dingen waren, gib mal fol-
> gendes in eine normale FreeBSD-/bin/sh ein und warte ab,
> was passiert:
>
> :(){ :;};:
>

Verstanden hab ich nicht so ganz, was das macht.

In der /bin/sh gibt's einen segmentation fault. In bash oder zsh schaukelt
sich die cpu auf so ungefähr 90% hoch nach ungefähr 1,5 min Laufzeit.
Die Speichernutzung schaukelt sich auch hoch. Nachdem ich bei über
110MB angelangt war, habe ich den Prozess gekillt.

Ctrl-C geht nicht zum stoppen. kill -9 stoppt es schliesslich und
killt das aterm, von wo ich es gestartet hatte, auch gleich mit.

-- 
Manfred
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 19 Mar 2004 - 06:38:42 CET

search this site