[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash Frage



Hi Ulrich,

"Ulrich Fürst" <Fuerst.Ulrich@vr-web.de> wrote:
>Ich möchte in einem Script für einem Verzeichnis zuächst testen ob es
>"nicht leer" ist, bevor dort bogofilter bzw. spamassassin trainiert
>werden. 
>
>Funktionieren tut das soweit ich gemerkt habe mit 
>
>if [ -e "`ls | tail -n 1`" ]; then echo ja; else echo nein; fi
>
>1. Warum funktioniert das nur, wenn ich die " setze und ohne nicht
>(bei leerem Verzeichnis)? 

Weil die Ausgabe von `ls | tail -n 1` an der Stelle im Skript
eingefügt wird.

Für ein leeres Verzeichnis wäre das

if [ -e "" ]; then echo ja; else echo nein; fi

ohne die " wäre das aber

if [ -e ]; then echo ja; else echo nein; fi

>2. Geht das eleganter?
>for i in `ls | tail -n 1`; do
>      echo Learning Spam in /home/ulrich/.Mail/SpamFilter/Spam/ ...
>      sa-learn --no-sync -u Debian-exim --showdots
>--spam ./* && /bin/rm --verbose ./*
>done

Bin mir nicht sicher was Du machen willst. Willst Du alle Mail in
dem Verzeichnis als Spam tranieren? Dann schau Dir mal die
sa-learn Optionen --mbox/--mbx an.

Frank
-- 
If code looks clumsy, it can usually be better written. Clean code
is more easily maintainable and modifiable.



Reply to: