Re: Bilddatei als Ressource im Script ablegen

David Haller <[email protected]> Thu, 30 Sep 2010 20:31:29 +0200
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
Hallo,

Am Don, 30 Sep 2010, Thomas Moritz schrieb:
>Am Mittwoch, 29. September 2010 20:10:07 schrieb David Haller:
>> >#!/bin/sh
>> 
>> Muß das /bin/sh, also portabel sein, oder darf's auch bash sein?
>> (wobei zsh und ksh müßten das, was ich vorschlage, ebenfalls
>> verarbeiten können.
>
>Eigentlich sollte '#!/bin/bash' ausreichen!

Jup.

>> >#set -xv
>> >trap "rm -f /dev/shm/thm____.____.png" SIGINT
>> 
>>                                         ^^^ das SIG-Präfix ist
>> nicht portabel
>
>Uuups, wieder was gelernt!
>
>> Besser mit mktemp die Temporärdatei erzeugen:
>> 
>> RFILE=$(mktemp /dev/shm/thmXXXXXX.png)
>> trap "rm -f $RFILE" HUP INT TERM EXIT
>
>mktemp will die Extension definieren und nicht den basename!

Ah, ja, stimmt. Ganz vergessen.

>Also:
>RFILE=$(mktemp /dev/shm/mypng.XXXXXX)
>Gut, dann muesste ich in composite wieder png: benutzen.

Ja.

>[***was anderes***]
>Andererseits liegt seit dem letzten Kernelupdate _und_ dem 
>anschliessenden Reboot noch ein suse-Schnipsel im shm :-(

Hm, bei mir is nix drin (Kernelupdate vorgestern).

>> Und beides evtl. innerhalb der Funktion.
>> 
>> >cd "$PWD"
>> 
>> Wozu das?
>
>Ich springe vorsichtshalber zu meinem BaseDir :-)
>Bei aufwendigen Sachen merke ich mir MYDIR="$PWD" und kann nach 
>diversen Ausfluegen schnell wieder zur Basis zurueck. cd "$MYDIR"

Aber 'cd "$PWD"' ändert ja nix, du bleibst wo du bist.

>> >    echo "Bearbeite $FILE"
>> >    #Filenamen in Grossbuchstaben aendern
>> >    UPPERFILE=`echo "$FILE" | tr '[[:lower:]]' '[[:upper:]]'`
>> 
>>     UPPERFILE="$(echo "$FILE" | tr '[[:lower:]]' '[[:upper:]]')"
>
>Am Ergebnis aendert sich nichts. Worin liegt der Vorteil?

Geschmackssache ;)

>> >    if ! test -e "$UPPERFILE"; then
>> >      mv "$FILE" "$UPPERFILE"
>> >    fi
>> 
>> Was ist, wenn $UPPERFILE existiert?
>
>Dann braucht $FILE nicht umbenannt zu werden und weiter geht's im 
>Script.

Ah, dann passts.

>> >    NEWFILE=`basename "$UPPERFILE" .JPG`"__R.JPG"
>> 
>>     NEWFILE="${UPPERFILE/%%.JPG}__R.JPG"
>
>Noe, das will ich nicht!
>UPPERFILE="ABC.JPG"
>NEWFILE="${UPPERFILE/%%.JPG}__R.JPG"
>echo "$NEWFILE"
>ABC.JPG__R.JPG    <<<-----Noe!

Mein Fehler.

    NEWFILE="${UPPERFILE/%.JPG/}__R.JPG"

HTH,
-dnh

-- 
There is a green, multi-legged creature crawling on your shoulder.