Hallo, Am Mon, 18 Apr 2005, Torsten Foertsch schrieb:
Hallo,
ich bin gerade dabei, ein SPEC-File anzupassen, und wollte folgenden Teil eines Scripts einbauen:
for i in $(find man* -type f); do cp $i ${i%%.*}%{vers}.${i#*.} || true done
Leider kommt bei der Shell statt ${i%%.*} nur ${i%.*} an. Offensichtlich frisst RPM hier ein % weg.
Was ist der richtige Weg ein Prozentzeichen an die Shell zu übergeben?
Du musst im .spec '%%' schreiben um ein % zu bekommen. Bedenke zusaetzlich noch, dass das %{varname%%...} usw. nur bedingt portabel ist. Ausserdem sollte man Variablen immer quoten! Jedenfalls sollte for i in $(find man* -type f); do cp "$i" "${i%%%%.*}%{vers}.${i#*.}" || true done funktionieren. Evtl. ist auch ein find man* -type f | while read -r name; do .. done sinnvoller. -dnh -- DAUs zu erklären, waß DAU ißt wäre ein Kochbuch, das keiner lesen kann. [Wolfgang Tittel in dag°]