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

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: