-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2009-04-08 a las 22:18 +0200, Camaleón escribió:
*** (...)
# parte los archivos en trozos de 512 KB split -b 512k $ruta_p $ruta_m
#envía el correo for file in $ruta_m*; do echo "Hola, blah, blah..." | mailx -r $remitente -a $file -s $file $destinatario; sleep $pausa; done
exit; ***
a) Si $ruta_m tiene un subdirectorio, me salta un error al terminar la ejecución, aunque el mensaje se envía:
*** Es un directorio "/home/hpc02/dead.letter" 1/39 . . . message not sent. ***
for file in $ruta_m*; do if test -f "$file" ; then echo "Hola, blah, blah..." | mailx -r $remitente -a $file -s $file $destinatario; sleep $pausa; fi done Así sólo enviará los ficheros normales, también se saltará los enlaces simbólicos, devices, etc. man test: -f FILE FILE exists and is a regular file
b) El "asunto" del correo contiene la ruta al archivo que se envía, pero queda muy cutre O:-)
¿Alguna forma sencilla de obtener sólo el nombre del archivo?
basename, de las coreutils: FILENAME=`basename $file` Por ejemplo: TOTAL=0 for file in $ruta_m*; do if test -f "$file" ; then let "TOTAL = $TOTAL + 1" fi done COUNT=0 for file in $ruta_m*; do if test -f "$file" ; then let "COUNT = $COUNT + 1" FILENAME=`basename $file` SUBJECT="Te envio el fichero $FILENAME, $COUNT de $TOTAL" echo "Hola, blah, blah..." | \ mailx -r $remitente -a $file -s "$SUBJECT" $destinatario; sleep $pausa; fi done - -- Saludos Carlos E.R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAkndKjIACgkQtTMYHG2NR9UBQgCfRhDed5YkozYPqh9m7KIeMJtM H7YAoIX3SMw/MU/B0pqauwNrt3C2TbgA =oY3D -----END PGP SIGNATURE-----