Hallo,
Thomas Güttler wrote:
On Sun, Feb 12, 2006 at 08:41:13AM +0100, Thomas Köhler wrote:
Thomas Güttler wrote:
Hallo,
ich habe folgendes Script:
find ... | while read file; do ..... read -u 3 # Hier möchte ich von stdin (Tastatur) lesen done
Leider bekomme ich die Umleitung von der Tastatur (3<&0 o.ä.) nicht hin.
Wenn man -u weg lässt, dann liest das zweite read natürlich den nächsten Dateinamen. Das read soll aber von der Tastatur lesen.
Hat jemand einen Tipp?
for file in $(find ...) ; do ... read # whatever done
Hallo,
bisher dachte ich immer, dass dann folgendes passiert:
===> ls $(find pictures/) bash: /bin/ls: Die Argumentliste ist zu lang
Das dem nicht so ist habe ich gerade getestet. Danke für die Antwort.
Naja, bei for file in $(find ...) wird im Gegensatz zu ls $(find ...) kein neues Kommando mit einer zu langen Kommandozeile für die exec()-calls erzeugt...
Der find-Befehl dauert recht lange, und es wäre eigentlich schade, dass das Verarbeiten der Dateinamen erst warten muss bis der find-Befehl sich beendet. Die Lösung mit "while read file" würde mir also schon besser gefallen. Irgendwie müsste es doch gehen stdin auf einen anderen Filedescriptor umzubiegen, oder?
Hm. Es läßt sich sicher eine Lösung finden...
Vielleicht irgendwas in der Form find <other options> -exec sh -c "do something to "{}" ; read x ; echo $x" ;
Ciao, Thomas