Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 ? hmm

Hors ligne

#3 Le 29/11/2008, à 20:50

Tismik

Re : [Résolu]Question de bash.

slasher-fun a écrit :

Bonjour,

Rassure moi, tu as cherché quand même avant de venir poser ta question ? hmm

Oui j'suis sur cette commande depuis le début d'aprem hmm

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.

slasher-fun a écrit :

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. sad

Hors ligne

#8 Le 29/11/2008, à 21:02

geenux

Re : [Résolu]Question de bash.

man test

wink

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

PasToutAFait

"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.

gabitbol a écrit :

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... sad 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?


PasToutAFait

"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.

gabitbol a écrit :

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. tongue

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.

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"
        fi

Et là ca fonctionne smile

Hors ligne

#15 Le 29/11/2008, à 21:48

Tismik

Re : [Résolu]Question de bash.

Tismik a écrit :
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"
        fi

Et là ca fonctionne smile

C'est bon tout fonctionne big_smile merci à tous:lol:

Hors ligne