bash Frage
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)? Bei vorhandenen Dateien ist es anscheinend
egal solange nur Dateinamen ohne Leerzeichen vorkommen (und das ist
dort so).
2. Geht das eleganter?
Mir fiele da xargs mit Option -r ein.
ls | /usr/bin/bogofilter -b -s
würde dann wohl zu
ls | xargs -r /usr/bin/bogofilter -b -s
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
Würde dann zu:
ls | xargs -r sa-learn --diverseoptionenundPfade
Oder denke ich da falsch?
Ulrich
Reply to: