[linux-l] Portable Shell-Scripte (was: Umbenennen mehrerer Dateien)
Benjamin Schieder
blindcoder at scavenger.homeip.net
Di Dez 12 06:52:24 CET 2006
On 11.12.2006 23:56:30, Mike Dornberger wrote:
> 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]).
Ja, die bash2 hat da allerdings noch einen Bug drin:
blindcoder at fuzzy:~$ cat <<< $foo
Segmentation fault (core dumped)
blindcoder at fuzzy:~$ rm core
blindcoder at fuzzy:~$ cat <<< "$foo"
Leere Variable ohne "" loest einen Segfault aus. Status: Won't Fix.
> 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:]]' )"
oder einfach:
$nemnawe="$( echo "${newname}" | tr '[[:upper:]]' '[[:lower:]]' )"
blindcoder at fuzzy:~$ newname="TeST"
blindcoder at fuzzy:~$ newname="$( echo "${newname}" | tr '[[:upper:]]' '[[:lower:]]' )"
blindcoder at fuzzy:~$ echo $newname
test
blindcoder at fuzzy:~$ echo -n $newname
testblindcoder at fuzzy:~$
Gruesse,
Benjamin
--
The Nethack IdleRPG! Idle to your favorite Nethack messages!
http://pallas.crash-override.net/nethackidle/
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : nicht verfügbar
Dateityp : application/pgp-signature
Dateigröße : 189 bytes
Beschreibung: nicht verfügbar
URL : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20061212/2884adb5/attachment.sig>
Mehr Informationen über die Mailingliste linux-l