Re: out of inodes

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Wed, 12 Jan 2005 19:39:26 +0100 (CET)

Ulrich Spoerlein <q(at)uni.de> wrote:
> On Wed, 12.01.2005 at 10:47:56 +0100, Oliver Fromme wrote:
> > > * wird schliesslich von der Shell expandiert, und dann knallts.
> >
> > Da echo ein Shell-builtin ist, wird exec*() gar nicht ver-
> > wendet, ergo spielt kern.argmax keine Rolle.
>
> Ja, aber ist echo denn _immer_ builtin? Bei jeder Shell?

Hm, das ist jetzt eine gute Frage. POSIX fordert nicht,
daß »echo« ein Builtin sein muß. Aber in der Praxis ist
es eigentlich immer einer. Ich kenne keine Bourne-Shell
unter irgendeinem UNIX, die kein echo eingebaut hat --
Kennst Du eine?

(Es wäre auch ziemlich blödsinnig von einem Software-De-
signer bzw. Programmierer, kein echo in der Shell zu im-
plementieren, denn es ist so ziemlich das am häufigsten
verwendete Kommando in Shell-Skripten. Jedesmal dafür
ein fork()+execve("/bin/echo")+wait() machen zu müssen,
wäre völlig bekloppt. Davon abgesehen ist es vermutlich
das am trivialsten zu implementierende Kommando überhaupt.)

Übrigens ist mir in einer vorhergehenden Mail eine kleine
Ungenauigkeit unterlaufen. »for« ist nicht etwa ein Shell-
builtin, sondern ein reserviertes Wort (ebenso wie while,
if, case usw.). Nichtsdestotrotz gilt das execve()-Limit
natürlich hierfür nicht, d.h. »for X in `ls`« ist sicher.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
Perl is worse than Python because people wanted it worse.
        -- Larry Wall
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 12 Jan 2005 - 19:40:05 CET

search this site