Problème script shell avec if find
Samefly
-
Samefly -
Samefly -
Bonjour,
J'ai un petit problème au niveau d'un script shell, lorsque je fais
if find $PWD -name $1
then
echo "c'est trouvé"
else
echo "c'est pas trouvé"
fi
Le terminal m'affiche toujours "c'est trouvé" alors que le premier paramètre ne correspond pas à un nom de fichier existant..
Je vous avoue que je comprend pas pourquoi.
Quelqu'un aurait la solution ?
D'avance merci
J'ai un petit problème au niveau d'un script shell, lorsque je fais
if find $PWD -name $1
then
echo "c'est trouvé"
else
echo "c'est pas trouvé"
fi
Le terminal m'affiche toujours "c'est trouvé" alors que le premier paramètre ne correspond pas à un nom de fichier existant..
Je vous avoue que je comprend pas pourquoi.
Quelqu'un aurait la solution ?
D'avance merci
2 réponses
-
Au final j'ai trouvé une solution:
rep=`find $PWD -name $1`
if [ "$rep" != "" ]
then
echo "c'est trouvé"
else
echo "c'est pas trouvé"
fi
Je reste quand même curieux de savoir pourquoi ça ne marche pas en faisant un if find... -
Salut,
Extrait du man find :EXIT STATUS
find exits with status 0 if all files are processed successfully, greater than 0 if errors occur.
find retourne une erreur sur des erreurs de syntaxes propres à ses options.
Qu'il trouve ou non un fichier c'est pareil pour lui, la commande a résussi.
$ ls
fich
$ find . -name 'fich'
./fich
$ echo $?
0
$ find . -name 'fichier'
$ echo $?
0
$ find /rep -name 'fich'
find: «/rep»: Aucun fichier ou dossier de ce type
$ echo $?
1