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

Re: bash Frage



Ulrich Fürst schrieb am Sonntag, 26. August 2007 um 08:59:23 +0200:
|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
|
 --- Ende der Nachricht --- 

Wozu eigentlich das ls?  Willst du nur abfragen, ob das
Verzeichnis leer oder gefüllt ist?  Kann man denn nicht die
Dateinamenexpansion der bash benutzen?  Und dann müßte es
auch noch eine andere Möglichkeit geben, in bash abzufragen,
ob ein Verzeichnis leer ist, aber auswendig weiß ich diese
Möglichkeit nicht.  Bei Dos kann man da mit dem Dateinamen
nul was machen.  Bei bash geht das glaub eleganter oder
einfacher.  Dazu würde ich mal ganz genau man bash lesen,
auch wenn das langwierig ist.


Alles Gute
Helmut H. Franke

-- 
Servamus vitam terramque istam, quas amans pater noster ipse dedit nobis!



Reply to: