Verzeichniss Inhalt

J

Janine

Eroberer
Hallo Jungs,

könnt ihr mir kurz sagen warum das nicht funktioniert ? Ist zum testen ob das eine File in dem anderen Ordner auch existiert … (file c existiert im 2ten Ordner nicht)



#!/bin/sh

for i in `ls ./tmp1`

do

if

find ./tmp2 -name "$i" -print

then echo "gefunden"

else

echo "nicht gefunden"

fi

done



Ausgabe:

./tmp2/a

gefunden

./tmp2/b

gefunden

gefunden
 
Du solltest deine if-Syntax nochmal überdenken.

find ./tmp2 -name "$i" -print

gibt dir 0 zurück, auch wenn keine Datei gefunden wurde. Mach mal aus

Code:
if
find ./tmp2 -name "$i" -print

if [ -e ./tmp2/$i ]

Da ist kein find nötig..
 
Code:
DIR_1=~/tmp1/
DIR_2=~/tmp2/

Als Variable und dann:

Code:
for I in $(find ${DIR_1} -type f -printf "%P\n"); do if [ -f ${DIR_2}${I} ]; then echo "Gefunden" ; else echo "Nicht Gefunden"; fi ; done

bzw.

Code:
#!/bin/sh

DIR_1=~/bin/
DIR_2=~/bla/

for I in $(find ${DIR_1} -type f -printf "%P\n"); 
do 
    if [ -f ${DIR_2}${I} ]; then 
        echo "Gefunden" ;
    else 
        echo "Nicht Gefunden"; 
    fi;
done
 
Zuletzt bearbeitet:

Ähnliche Themen

Switche abfragen über Script

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

Verschlüsseltes Backup-Script mit rsync

Shell Skript beschleunigen

HandbrakeCLI Shell Skript

Zurück
Oben