
On Sun, 11 Oct 2015 15:39, Alex Winzer <alex.e-mail@...> wrote:
Hallo,
das Subject ist vielleicht etwas unglücklich. Aber ich habe im Moment keine bessere Idee. Ich möchte gern ein bestimmtes Verzeichnis auf das Vorhandensein nur von pdf-Dateien prüfen. Die anderen Dateien interessieren mich nicht. Grund dafür ist, dass ich diese Dateien mit einer for...done-Schleife weiterverarbeiten möchte und diese Schleife bei _nicht passender_ Dateiendung genau einmal mit "*" als Ergebnis durchläuft. "*" muss ich aber verhindern. Dafür hatte ich folgenden Code angedacht:
#!/bin/bash
inputdir="/mnt/faxe/" faxfiles=$inputdir"*\.pdf"
if [ -f $faxfiles ]; then echo "Jawoll" fi
Das funktioniert aber nicht sicher: Ist _keine_ pdf-Datei vorhanden, kommt keine Meldung, wie gewünscht. Ist _eine_ pdf-Datei vorhanden, kommt eine Meldung, wie gewünscht. Sind _mehrere_ pdf-Dateien vorhanden, enthält "*\.pdf" die Liste der pdf-Dateien und die Abfrage meckert herum.
Ich habe schon eine ganze Weile im www gesucht. Aber ich kann nichts finden, was möglicher Weise auch daran liegt, dass ich nicht die richtigen Suchbegriffe habe. *Vermutlich ist es ganz einfach. Ich stehe aber auf dem Schlauch und brauchte mal jemand, der mich runterschubst.*
*Grinse-Katze* Der faule Weg: Benutze "ls" anstelle von "test". Beispiel: [code] #!/bin/bash inputdir="/mnt/faxe" faxendung=".pdf" if /usr/bin/ls $inputdir/*$faxendung &>/dev/null then echo "Jawoll" else echo "Nö, nix da" fi [/code] Anmerkung: Das Konstrukt "&>$datei" leitet stderr UND stdout in $datei um. Also das selbe wie ">$datei 2>&1". Der Befehl "ls" bendet mit code 0(null) falls eine oder mehere Dateien gefunden werden, "if" interpretiert das als "true" Schönen Sonntag noch - Yamaban.