[linux-l] Portable Shell-Scripte (was: Umbenennen mehrerer Dateien)
Mike Dornberger
Mike.Dornberger at gmx.de
Mo Dez 11 23:56:30 CET 2006
Hallo Benjamin,
On Mon, Dec 11, 2006 at 12:09:33PM +0100, Benjamin Schieder wrote:
> newname="$( tr '[[:upper:]]' '[[:lower:]]' <<< "${newname}")"
aha, die bash benutzt <<<, um das expandierte Wort dahinter dem Kommando
davor auf stdin zu übergeben. Wieder was gelernt. :) Andere Shells tun das
vielleicht auch, aber es ist wohl nicht POSIX-konform (vgl [1]).
[1] http://www.opengroup.org/onlinepubs/000095399/utilities/xcu_chap02.html#tag_02_07
Da [2]echo lt. Spezifikation der OpenGroup -n nicht "wie gewohnt"
unterstützen muß, sollte man die Zeile, so man denn auf einfache Portierung/
Plattformunabhängigkeit wert legt, in
newname ="$( printf %s "${newname}" | tr '[[:upper:]]' '[[:lower:]]' )"
ändern.
[2] http://www.opengroup.org/onlinepubs/000095399/utilities/echo.html
Ansonsten, nettes Script. :)
Viele Grüße,
Mike
Mehr Informationen über die Mailingliste linux-l