If-Abfrage kommt nicht positiv zurück, obwohl Kriterium erfüllt

T

Tom71

Mitglied
Hallo,
ich habe unter Red Hat Linux 7.4 in einem Shellskript eine If-Abfrage, die prüft, ob eine Datei in einem Ordner existiert.
Obwohl die Testdatei im Ordner vorhanden ist, scheint die Abfrage diese nicht dort zu finden.

Meine Abfrage:
Code:
if [ -f "$DIR1/$DIR2/DATEI$z/$i*" ] ; then
xxx
else
yyy
fi

Ich habe testweise die if-Abfrage manuell eingegeben mit aufgelösten Variablen sowie die Zeile mit "echo" in ein Logfile geschrieben, der Pfad passt genau, manuell findet die if-Abfrage die Datei.
Woran kann das liegen ?
 
ich würde erst mal die Variablen schön in ${} packen anstatt nur mit $
 
Endet der Name der Datei, die du überprüfen willst, wirklich mit '*'? Der '*' wird nämlich innerhalb der Double-Quotes nicht ausgewertet. Versuch daher mal
Code:
if [ -f "$DIR1/$DIR2/DATEI$z/$i"* ] ; then
...
Problematisch wird das Ganze, wenn das Muster auf mehr als eine Datei passt - dann müsstest du das in eine Schleife packen, sonst bekommst du Fehlermeldungen wie
Code:
-bash: [: ...: binary operator expected
 

Ähnliche Themen

mittels if abfrage datei nach variabelnwert durchsuchen

Shell if-Abfrage mit equal or greater wirft Fehlermeldung unary operator expected

Problem mit if-Schleife

Zurück
Oben