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
A voir également:
- Shell find -exec
- Classic shell - Télécharger - Personnalisation
- Find and mount - Télécharger - Récupération de données
- Ava find - Télécharger - Divers Utilitaires
- Shell addition ✓ - Forum Shell
- Find junk files - Télécharger - Nettoyage
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...
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 :
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.
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