Am Mittwoch, 29. September 2010 20:10:07 schrieb David Haller: Hallo,
#!/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!
#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! echo "$SHELL" /bin/bash mktemp -V mktemp (GNU coreutils) 7.1 Also: RFILE=$(mktemp /dev/shm/mypng.XXXXXX) Gut, dann muesste ich in composite wieder png: benutzen. [***was anderes***] Andererseits liegt seit dem letzten Kernelupdate _und_ dem anschliessenden Reboot noch ein suse-Schnipsel im shm :-( initrd_exports.sh ---------------------------------------------------- declare -x HOME="/" declare -x OLDPWD="/" declare -x PATH="/sbin:/usr/sbin:/bin:/usr/bin" declare -x PWD="/root" declare -x ROOTFS_BLKDEV="/dev/disk/by-id/ata-WDC*-part6" declare -x ROOTFS_FSCK="0" declare -x ROOTFS_FSTYPE="ext4" declare -x SHLVL="1" declare -x TERM="linux" declare -x splash="silent" declare -x vga="0x317" ---------------------------------------------------- Wenn ich es nicht zufaellig gesehen haette, laege der beim naechsten Kernelupdate auch noch rum... (s2ram-Kiste). [***was anderes***]
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"
echo "$RAHMEN" | uudecode -o - > "$RFILE"
Da hättest du nachgucken sollen, was die Option '-o' macht ;)
Hand an die Stirn klatsch! Es ist so augenscheinlich und trotzdem habe ich gepennt!
find -type f -name '*.[jJ][pP][gG]' | while read -r FILE; do
find -type f -iname '*.jpg' | while read -r FILE; do
-iname ...klar doch!
if ! echo "$FILE" | grep -q "__R.JPG$"; then
Aber sinnvoller ist glaub eh:
case $FILE in *__R.JPG) continue;; esac
ODER
if test "$FILE" = "${FILE%%__R.JPG}"; then
Beides gut, case gefaellt mir besser, da schnell und uebersichtlich erweiterbar.
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?
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.
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!
# temporaeres PNG loeschen rm -f "$RFILE"
Gleich mit von 'trap' erledigen lassen ;)
OK! Ich danke Dir vielmals fuer Deine Muehe! MfG Th. Moritz -- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org