Hallo, Am Mon, 15 Mär 2010, Christian Brabandt schrieb:
On Mo, 15 Mär 2010, David Haller wrote: [ ${var//%pat/repl} in bash ]
Das gibt's mind. seit:
$ bash --version GNU bash, version 2.03.0(1)-release (i386-suse-linux) ==== man bash
[???] Tatsächlich? Dann habe ich jahrelang die Manpage nicht richtig verstanden oder gelesen ;)
Offenbar ;) Geht mir auch immer mal wieder so.
AFAIK ist das sogar portabel (POSIX).
Eben nicht. http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_...
Hier finde ich nichts über parameter substitution.
Jap. Man kann nicht alles im Kopf haben. Dafür gibt's ja manpages und obige Webseite ;) ${parameter:offset} ${parameter:offset:length} scheint ebenfalls nicht in POSIX enthalten zu sein. Jedenfalls klappt das ${var//pat/repl} in ner vergleichbar ollen pdksh nicht: $ ksh -c 'echo $KSH_VERSION' @(#)PD KSH v5.2.14 99/07/13.2 $ ksh -c 't=foo.tif.bar.tif; echo "${t/%.tif/.jpg}";' ksh: : bad substitution Der Rest der parameter expansions per ${} scheint aber in POSIX zu sein. Wobei ich nicht weiß, ob aktuelle bash's da noch was ergänzt haben. Ich beschränke mich da gern auf den Stand der bash 2.0.x, bei allem was mehr "will" greift man (oder zumindest ich) sowieso besser zu sed, awk oder gleich perl ;) Und spätestens seit SUSE 10.x ist perl zwingend auf jedem System (Bootloader Installation, guck in deine menu.lst ;). Auch Python ist inzwischen zwingend vorhanden, das war vor ein paar Jahren noch nicht so ;)
Achso: Korrekt dürfte "${datei/%.tif/.jpg}" sein.
In dem Fall schon.
Jau :) Oder eben POSIX: "${t%.tif}.jpg". WWG. Die ash (Bourne- nicht POSIX kompatibel) kennt aber auch das nicht, die sash schon. dash hab ich hier nicht zur Hand. Schlimmer find ich jedenfalls ein Script mit '#!/bin/sh' zu haben, das das explizite bashisms verwendet (die z.B. nichtmal die ksh oder zsh kennen). Hab die Tage irgendein initscript oder so was gesehen, das das macht. In nem Kommentar war explizit von "bash allows us to" die Rede. *grmpf* -dnh -- Love your enemies: they'll go crazy trying to figure out what you're up to. -- BSD fortune file -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org