Ich bin dabei, ein kleines Script zu schreiben, das mir ein File von einem FTP-Server saugen soll. Von dem File weiß ich nur, dass es auf .tar endet, und ich weiß, dass es das einzige tar-Archiv dort ist (ftp://ftp.mcafee.com/pub/datfiles/english/).
Die Aufgabe ist nicht allzu schwer, aber ich dachte mir, dass es eleganter wäre, erst einmal zu prüfen, ob das File überhaupt heruntergeladen werden muss. Möglicherweise habe ich das ja schon, und dann könnte ich mir den Download sparen.
Zu diesem Behufe habe ich das Program ncftpls ausgewählt, dass mir folgendes Ergebnis bringt:
mehl:/tmp % ncftpls ftp://ftp.mcafee.com/pub/datfiles/english/
dat-4296.tar
dat-4296.zip
extra/
readme.txt
update.ini
virex/
mehl:/tmp %
Schön, und um den Namen des tar-Archives herauszufinden, hänge ich noch ein | grep tar an und fertig ist die Laube.
In meinem Script steht also schlichtweg der Ausdruck
FILENAME=`ncftpls ftp://ftp.mcafee.com/pub/datfiles/english/ | grep tar`
was so unnachahmlich perfekt dat-4296.tar in die Variable $FILENAME schreibt. Prima. Und weil ich wissen will, ob mit dem FTP-Transfer alles OK ging, will ich noch den Returncode abfragen mit
echo $?
Hmmm. Unprima.
Leider bekomme ich so nur den Return-Code von grep zurück. Erscheint logisch. Ich will aber wissen, ob nun der FTP-Transfer der Liste funktioniert hat oder nicht.
Hat jemand einen eleganten Tipp für mich (man wasauchimmer | grep suchbegriff) oder eine überhaupt viel bessere Lösung (jemanden anrufen, der etwas davon versteht) oder kann mich mit der Nase auf die richtige Stelle stoßen?
Stefan