Am Mon, 19 Nov 2001 schrieb Bernd Brodesser:
* Ralf Corsepius schrieb am 19.Nov.2001:
Am Mon, 2001-11-19 um 16.41 schrieb Bernd Brodesser:
* Christoph Maurer schrieb am 19.Nov.2001:
for i in *; do sed -e "s/applet/bpplet/" < $i > $i.tmp; \ mv $i.tmp $i; done
\ soll andeuten, daß da eigentlich kein Zeilenumbruch steht!
Vorher aber checken ob alles so funktioniert, wie Du es Dir denkst.
Nö muß nicht in einer Zeile stehen. Doch.
Ist auch kein Skript für nötig. Kann man alles so eingaben wie es da steht. Sieht etwa so aus:
$ for i in *
do sed -e "s/applet/bpplet/" < $i > $i.tmp && mv $i.tmp $i done $
Dabei steht $ für den normalen PS1 Prompt, der die bash ausgibt und > für den PS2 Prompt, der die Shell ausgibt, wenn ein Befehl noch nicht vollständig ist. Womit das ganze eine Zeile ist :)
Sollen wir jetzt darüber diskutieren, was eine Zeile ist?
Wir können ja eine Unterscheidung zwischen syntaktischer und Eingabezeile einführen ;-)
Wenn man ein Skript schreibt, braucht man es doch nicht in einer Zeile zu schreiben. Und wenn man es interaktiv eingibt, dann kann man durchaus die Returntaste zwichendurch betätigen. Dann braucht man kein ; einzugeben und auch kein \ Natürlich nicht an beliebiger Stelle, sondern nur dort wo ein Teilbefehl zu Ende ist.
Im täglichen Betrieb mache ich das auch exakt so, war mir für die Mail aber zu kompliziert zu erklären gewesen... Wichtig war aber der Hinweis, die sed und die mv-Operation mit && zu verknüpfen, das ist in der Diskussion jetzt zu Unrecht etwas untergegangen. Gruß Christoph -- Christoph Maurer - Paul-Röntgen-Straße 7 - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen