Hallo.
Csplit gibt es übrigens nicht nochmal.
Wollte nur mit den Pfaden auf Nummer sicher gehen...
--
Mit freundlichen Grüssen
Andre Bauer
============================================
HS> Hi,
HS> Andre Bauer
monotek@freakmail.de (Di 06 Sep 2005 18:26:42 CEST):
>> Hallo.
>> Ich erhalte die Fehlermeldung, dass /tmp/fax2mail nicht gelöscht
>> werden konte, weil es nicht existiert. Das Problem scheint irgendwo
>> bei csplit zu liegen. Ich komm aber nicht drauf wo es genau klemmt?
HS> Ok, dann ist also Die 'for fax in ...'--Schleife nicht einmal ausgeführt
HS> worden, weil sonst, egal, ob mimedecode und die anderen Konsorten
HS> gefunden werden, je wenigstens /tmp/mail2fax angelegt worden wäre (das
HS> tut die Shell, *bevor* sie merkt, daß die entsprechende Zeile vielleicht
HS> garnicht gehen kann.
HS> Warum eigentlich '/usr/bin/csplit' und nicht einfach 'csplit' -- hast Du
HS> noch andere davon?
HS> Setze lieber PATH, wenn Du Dich auf bestimmte Dinge verlassen willst.
HS> Oder noch 'eleganter': csplit() { /usr/bin/csplit "$@"; } Aber das hat
HS> mit Deinem Problem ja nichts zu tun.
>> #!/bin/sh
>>
>> #config
>> frommail="ich@bla.de" # for csplit
>> dialprefix="0"
>>
>> # script
>> if [ -e /var/mail/faxmaster ]; then
>>
>> /usr/bin/csplit -f fax -n 3 -k -s -z /var/mail/faxmaster "/From ${frommail} /" {*}
HS> In welchem Verzeichnis bist Du eigentlich?
HS> Wenn Cron Deinen Script startet, ist er in ... ja - was sagen die
HS> Experten, ich denke in ~root ...
HS> Wenn Du das Script per Hand startest, bist Du vielleicht zufällig in
HS> /var/spool/hylafax/bin? Denn csplit legt die resultierenden Files ins
HS> *aktuelle* Verzeichnis.
>> for fax in `ls /var/spool/hylafax/bin | grep fax[0-9] | sed 's/fax//'`
>> do
>>
>> cat /var/spool/hylafax/bin/fax${fax} | mimedecode |
>> /var/spool/hylafax/bin/appendheaders.pl > /tmp/mail2fax
>>
>> subject=`grep .*Subject:.*[Ticket#:.[0-9]] /tmp/mail2fax`
>>
>> nr=`echo $subject | sed 's/Subject:.*[Ticket#: [0-9]{16}] //'`
>>
>> cat /tmp/mail2fax | sed '1,/^$/d' | head -n -20 | a2ps -1 -c -q
>> -B --borders=no -o - | sendfax -d ${dialprefix}${nr}
>>
>> rm /var/spool/hylafax/bin/fax${fax}
>>
>> done
>>
>> rm /tmp/mail2fax /var/mail/faxmaster
HS> Das ist nach Schleifen-Ende. Also wenn das File fehlt, gab's keine
HS> Schleife. Wie oben erklärt. Natürlich kann das auch dann passieren,
HS> wenn das Script funktioniert, denke ich. 'rm -f' wirkt hier Wunder.
HS> Heiko