Hallo, Am Mon, 05 Nov 2007, Axel Birndt schrieb:
Dirk schrieb: [..] wie gesagt, solltest Du Anführungszeichen verwenden,
IMMER! [..]
$neu.pgp funktioniert bei Dir im Moment. $neutmp würde nicht funktionieren. Deshalb ${neu}.pgp, was sauberer und besser zu verstehen ist. In der geschweiften Klammer steht der zu ersetzende Variablenname.
Korrekt, das ist zur Trennung nötig. Man schaue sich die Ausgabe von: testfunktion() { echo "$11 ${1}1 ${11}"; } testfunktion `seq 20 32` an... Über den Rest breite ich lieber den Mantel des Schweigens... Hier mal ne halbwegs saubere Variante: ==== #!/bin/bash DATIME=$(date '+%Y%m%d%H%M') for file; do new="${file}_${DATIME}" test -e "$new" || { echo "Datei '$new' existiert" >&2; exit 1; } test -e "${new}.pgp" || { echo "Datei '${new}.pgp' existiert" >&2; exit 1; } mv -i "$file" "$new" || exit 1 gpg -e -r username -o "${new}.pgp" "$new" || exit 1 ftp -iv -u ftp://ftpadresse/ "${new}.pgp" \ > /home/username/logs/translog_${new}.log 2>&1 ## Fehlerbehandlung des ftp noch! done ==== Das nimmt auch mehrere Dateinamen. for variablename; do .. done ist äquivalent zu 'for variablename in "$@"; do .. done' und 'in "$@"' ist die einzige Variante die man bei sowas verwenden sollte. Wenn's noch Fragen gibt, nur zu... HTH, -dnh -- "90% der Science-Fiction-Literatur ist schlecht. Aber eigentlich ist 90% von allem schlecht." -- Isaac Asimov -- 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