Andreas Pakulat <[EMAIL PROTECTED]>: > On 30.06.06 16:29:46, Frank Terbeck wrote: > > Andreas Pakulat <[EMAIL PROTECTED]>: > > > > > > ls | grep "done$" | while read f... > > > > Das ist ganz einfach nicht nötig. > > Unter anderem sollte man sich sicher sein, das ls nicht als Alias > > expandiert und dann Optionen wie '--color=always' oder '-F' verwendet. > > --color=auto hatte ich, grad mal rausgenommen.
'auto' ist nicht gravierend, 'always' wäre gravierend, weil etwaige Controlcodes mit ausgegeben würden, egal welches Ausgabemedium ls erkennt. > > > > Im übrigen sollte jede Shell mit sehr langen Listen in for Schleifen > > > > klarkommen. > > > > > > Also die Bash hier kommt mit 3700 Mails im monatl. d-u-g Ordner nicht > > > zurecht wenn ich alle auflisten lasse (73 Zeichen pro Zeile) > > > > Da würde mich aber interessieren, welches Kommando du da anwendest. > > ls, > [EMAIL PROTECTED]:~/.Mail/debian-user-german.2006-05/cur>alias ls=ls > [EMAIL PROTECTED]:~/.Mail/debian-user-german.2006-05/cur>which ls > /bin/ls > [EMAIL PROTECTED]:~/.Mail/debian-user-german.2006-05/cur>/bin/ls *morpheus* > bash: /bin/ls: Die Argumentliste ist zu lang Ja, an einen externen Befehl können Argumentlisten schnell mal zu lang werden. Aber es ging ja hier um for-Schleifen. > > Denn bei shellinternen Kommandos ist die Menge der Argumente lediglich > > durch den zur Verfügung stehenden Speicher begrenzt. > > Ich benutze kein bash-internes ls. Warum weiss ich nicht, ich hab > diesbzgl. nichts verstellt. Ich bin auch nicht sicher ob die bash ein internes ls hat. Das ist aber auch nicht der Punkt. Wenn die Argumentliste zu lang wird, dann kann man das triviale Kommando entweder in eine for-Schleife umwandeln oder spezialisierte Programme wie xargs verwenden. > > Ich habe gerade mal eine bash gestartet und eine for Schleife mit vier > > Millionen Argumenten gestartet: > > > > for i in $(seq 1 4000000) ; do echo $i ; done > > for geht hier auch wunderbar. Gut, und daher wird in deinem Anwendungsfall auch eine Schleife der Art for i in *morpheus* ; do ls $i ; done funktionieren. Gruss, Frank -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

