[gelöst] Problem mit test Befehl

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

[gelöst] Problem mit test Befehl

Beitrag von kleinerspast » 20.11.2009 12:55:29

Hi,

ich prüfe in einem Skript in einem VZ mit dem Test Befehl ob .log Dateien im Ordner liegen. Das dachte ich mir etwa so:

Code: Alles auswählen

test -e | find . -type f -name "*\.tex" ; echo $?
Problem ist jetzt das dieser Befehl auch den übergeordneten Ordner nach .log Files durchsucht, das soll er aber nciht!!!
Ebenso, habe ich es in eine if eingebaut, was aber anscheinend auch nicht fkt:

Code: Alles auswählen

if test -e | find . -type f -name "*\.tex"
Wollte so prüfen ob true also 0 zurückgegeben wird. das fkt aber nicht, muss es anscheinend etwas anders aufbauen.

Kann mir da jemand kurz helfen?

Danke euch schonmal
Zuletzt geändert von Meillo am 21.11.2009 15:25:43, insgesamt 1-mal geändert.
Grund: Titel um [gelöst] ergänzt

Benutzeravatar
shoening
Beiträge: 914
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: Problem mit test Befehl

Beitrag von shoening » 20.11.2009 13:50:25

Hallo,

Code: Alles auswählen

test -e
erwartet als Parameter einen Dateinamen.

Meinst Du also vielleicht

Code: Alles auswählen

test -e `find . -type f -name "*\.tex"` ; echo $?
Da liefert test -e dann aber einen Fehler, wenn mehr als ein Dateinamen zutreffen.

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: Problem mit test Befehl

Beitrag von kleinerspast » 20.11.2009 14:25:20

Hi,

es müsste doch mit dem Test Befehl (oder einem anderen Linux Befehl) möglich sein, ob sich ein bestimmter Dateityp in einem ganz best. Ordner befindet oder?

hatte mir das in etwa so gedacht:

Code: Alles auswählen

if test -e | find . -type f -name "*\.log"
  for i in *.log ; do
    verarbeite......
  done
else
  echo "Nix zu tun!"
  exit
fi
wenn das laufen würde, wäres geil

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Problem mit test Befehl

Beitrag von heinz » 20.11.2009 18:23:04

Hallo kleinerspast,

villeicht in dieser Art?

Code: Alles auswählen

for DATEI in $(find . -type f -name "*\.log)
do
    for i in $DATEI
    do
        verarbeite......
    done
done
Wenn sich die menge der Log-Dateien in grenzen hält und die Dateinamen
keine Leerzeichen enthalten, sollte das gehen.

gruß heinz

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: Problem mit test Befehl

Beitrag von kleinerspast » 20.11.2009 21:29:19

Danke und fertig ;-)

Antworten