Pages : 1
#1 Le 29/11/2008, à 20:45
- Tismik
[Résolu]Question de bash.
Bonsoir, je suis etudiant en Informatique (DUT Info) et je dois faire un script en bash.
Je cherche dans mon script, a inserer une commande bash qui va me dire si un fichier est existant ou non. (le nom du fichier est entré en parametre lors de lexecution du .sh )
Je cherche a faire ceux ci :
Si Fichier "source" existe
alors
ecrire "Fichier deja existant"
sinon
ecrire "Test OK"
Quelqu'un connaitrait une commande capable de faire ca ?
Merci d'avance :)
Dernière modification par Tismik (Le 29/11/2008, à 21:48)
Hors ligne
#2 Le 29/11/2008, à 20:49
- slasher_fun
Re : [Résolu]Question de bash.
Bonjour,
Rassure moi, tu as cherché quand même avant de venir poser ta question ?
Hors ligne
#3 Le 29/11/2008, à 20:50
- Tismik
Re : [Résolu]Question de bash.
Bonjour,
Rassure moi, tu as cherché quand même avant de venir poser ta question ?
Oui j'suis sur cette commande depuis le début d'aprem
Hors ligne
#4 Le 29/11/2008, à 20:51
- slasher_fun
Re : [Résolu]Question de bash.
Et ça donne quoi jusqu'ici ?
Hors ligne
#5 Le 29/11/2008, à 20:53
- Кຼزດ
Re : [Résolu]Question de bash.
il me semble que c'est un truc comme ça :
if [ -e "source"]; then
echo "Fichier deja existant"
else
echo "Test OK"
mais je suis pas non plus très doué
Dernière modification par mathieuI (Le 29/11/2008, à 20:58)
dou
Hors ligne
#6 Le 29/11/2008, à 20:53
- Tismik
Re : [Résolu]Question de bash.
Et ça donne quoi jusqu'ici ?
Ca donne que si mon fichier existe ou non, il me sort "Fichier existant"
Pour le moment je fais ca :
chemintest=$(find obj/ -name $2)
if test -f $chemintest
then
echo "Fichier Existant"
else
echo "Test OK"
fi
Apres j'suis pas sur du tout que ce que j'fais soit la bonne chose...
Hors ligne
#7 Le 29/11/2008, à 20:58
- Tismik
Re : [Résolu]Question de bash.
MathieuI > je viens de tester avec ton code, cette fois fichier existant ou non il me resort : Test OK.
Hors ligne
#8 Le 29/11/2008, à 21:02
- geenux
Re : [Résolu]Question de bash.
man test
Et si tu veut réelement comprendre ce que tu fais : http://abs.traduc.org/abs-5.3-fr/index.html
Hors ligne
#9 Le 29/11/2008, à 21:08
- gabitbol
Re : [Résolu]Question de bash.
Bonjour,
Ca test le fichier donné en argument : script.sh /home/moi/unfichier
#!/bin/bash
for i in "$@" ; do
if [ -f "$i" ] ; then echo "Le fichier existe deja"
else
echo "Test OK"
fi
done
"A force de sacrifier l'essentiel à l'urgent, on oublie l'urgence de l'essentiel"
Edgar Morin
Hors ligne
#10 Le 29/11/2008, à 21:14
- Tismik
Re : [Résolu]Question de bash.
Bonjour,
Ca test le fichier donné en argument : script.sh /home/moi/unfichier
#!/bin/bash for i in "$@" ; do if [ -f "$i" ] ; then echo "Le fichier existe deja" else echo "Test OK" fi done
Ca me fait "Test OK" pour les deux cas... j'comprend pas.
Hors ligne
#11 Le 29/11/2008, à 21:16
- gabitbol
Re : [Résolu]Question de bash.
Et tu es sur que tu test un fichier qui existe?
"A force de sacrifier l'essentiel à l'urgent, on oublie l'urgence de l'essentiel"
Edgar Morin
Hors ligne
#12 Le 29/11/2008, à 21:18
- Tismik
Re : [Résolu]Question de bash.
Et tu es sur que tu test un fichier qui existe?
J'veux pas vraiment tester le fichier de facon à savoir si c'est un fichier ou un repertoire. J'veux savoir en rentrant un nom en argument, s'il existe, et s'il existe faire une action.
Hors ligne
#13 Le 29/11/2008, à 21:25
- geenux
Re : [Résolu]Question de bash.
#!/bin/bash
for i in "$@" ; do
if [ -f "$i" ] ; then echo "Le fichier existe deja"
else
echo "Le fichier n'existe pas"
fi
done
Ce code fonctionne parfaitement, alors si il ne fonctionne pas chez toi, c'est que tu ne lui a pas passé le bon chemin de fichier !
Hors ligne
#14 Le 29/11/2008, à 21:34
- Tismik
Re : [Résolu]Question de bash.
#!/bin/bash for i in "$@" ; do if [ -f "$i" ] ; then echo "Le fichier existe deja" else echo "Le fichier n'existe pas" fi done
Ce code fonctionne parfaitement, alors si il ne fonctionne pas chez toi, c'est que tu ne lui a pas passé le bon chemin de fichier !
J'ai reussi à le faire fonctionner, en fait je chercher seulement dans le repertoire courant...
Du coup j'ai du faire :
for i in "$@" ; do
if [ -f "/home/julien/Bureau/obj/$i" ] ; then echo "Le fichier existe deja"
else
echo "Le fichier n'existe pas"
fi
Et là ca fonctionne
Hors ligne
#15 Le 29/11/2008, à 21:48
- Tismik
Re : [Résolu]Question de bash.
geenux a écrit :#!/bin/bash for i in "$@" ; do if [ -f "$i" ] ; then echo "Le fichier existe deja" else echo "Le fichier n'existe pas" fi done
Ce code fonctionne parfaitement, alors si il ne fonctionne pas chez toi, c'est que tu ne lui a pas passé le bon chemin de fichier !
J'ai reussi à le faire fonctionner, en fait je chercher seulement dans le repertoire courant...
Du coup j'ai du faire :
for i in "$@" ; do
if [ -f "/home/julien/Bureau/obj/$i" ] ; then echo "Le fichier existe deja"
else
echo "Le fichier n'existe pas"
fiEt là ca fonctionne
C'est bon tout fonctionne merci à tous:lol:
Hors ligne
Pages : 1