[Postfixbuch-users] SA-Learn

Christian Boltz postfixbuch at cboltz.de
Di Nov 7 20:13:09 CET 2006


Hallo Lars, hallo Leute,

Am Dienstag, 7. November 2006 17:00 schrieb lars behrens:
> sorry, ist etwas OT, aber hier weiss sicher jemand antwort ;-)
>
> ich habe mir ein script gebastelt, welches in einen mailordner
> verschobene HAMs und SPAMs in den spamassassin verschiebt (sa-learn);
>
>
> zuerst habe ich mir dieses script gebastelt:
>
> #!/bin/bash
> if [ -f /home/spamverdacht/Maildir/cur/* ];then 
[...]
> /home/adminz/scripte/lham: line 6: [: too many arguments
>
> Dasselbe script nur mit den Änderungen versehen - offensichtlich wird
> die Wildcard * im cur/ nicht akzeptiert, aber beim spam-lern-script
> geht es doch auch!
>
>
> hat jemand eine idee dazu ... ?

Ganz einfach: das Script funktioniert dann, wenn _keine_ oder _eine_ 
Datei im Verzeichnis liegt. Ab 2 Dateien kommt das typische "too many 
arguments" von test aka [], weil der * zu mehreren Dateien expandiert 
und test nur einen Dateinamen erwartet.

Üblicherweise empfehle ich in diesem Fall
   for file in * ; do echo machwas mit "$file" ; done
aber da Du ja die Dateiliste nicht brauchst und das ganze Verzeichnis an 
sa-learn verfütterst, empfiehlt sich hier
    ls * && echo machwas

Auf Dein Script angewendet also
    ls /home/ham/Maildir/cur/* && sa-learn [...] && mail [...]
    exit 0
oder besser
    ls /home/ham/Maildir/cur/* || exit 0
    sa-learn [...] && mail [...]
weil Du dann Fehler in sa-learn mitbekommst.


Wenn alles läuft, kannst Du die Ausgabe von ls (ausnahmsweise incl. 
STDERR, file not found interessiert hier nicht) ins Nirwana schicken:   
    ls /home/ham/Maildir/cur/* &>/dev/null


Gruß

Christian Boltz

PS @ Benjamin: Bis wirklich die Argumentliste für cat, rm usw. zu lang 
   wird, muss viel geschehen - AFAIK sind unter Linux Befehlszeilen mit 
   einer Länge von 16 oder sogar 32 kB (!) möglich.
   Jedenfalls deutlich mehr als die 2 Dateien, die hier Probleme machen.

-- 
Benutze Groß-/Kleinschreibung:
ich habe liebe genossen.         der junge sieht dir ungeheuer ähnlich.
wenn wir weise reden hören.      helft den armen vögeln.
                                 [Bertram Scharpf in suse-linux]



Mehr Informationen über die Mailingliste Postfixbuch-users