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:
- References:
- bash Frage
- From: "Ulrich Fürst" <Fuerst.Ulrich@vr-web.de>