[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