OVH Cloud OVH Cloud

petit shell script

8 réponses
Avatar
jerome kaluza
------=_Part_81277_13001058.1152086002465
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Bonjour j'essaie de faire un scrip qui verifie si 2 parametres qui sont des
noms de fichier sont bien indique, j'essaie de teste avec la valeur vide
mais meme si ce n'est pas vide, il rentre toujours dans le test :


controle="$1"
donnees="$2"
if (test $controle="") then
echo "erreur: fichier de controle non specifie";
exit;
fi
if (test $donnees="") then
echo "fichier csv non specifie";
exit;
fi


ou est mon erreur ??

merci d'avance

------=_Part_81277_13001058.1152086002465
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Bonjour j'essaie de faire un scrip qui verifie si 2 parametres qui sont des noms de fichier sont bien indique, j'essaie de teste avec la valeur vide mais meme si ce n'est pas vide, il rentre toujours dans le test :<br><br>
<br>controle=&quot;$1&quot;<br>donnees=&quot;$2&quot;<br>if (test $controle=&quot;&quot;) then<br>&nbsp;&nbsp;&nbsp; echo &quot;erreur: fichier de controle non specifie&quot;;<br>&nbsp;&nbsp;&nbsp; exit;<br>fi<br>if (test $donnees=&quot;&quot;) then<br>
&nbsp;&nbsp;&nbsp; echo &quot;fichier csv non specifie&quot;;<br>&nbsp;&nbsp;&nbsp; exit;<br>fi<br><br><br>ou est mon erreur ??<br><br>merci d'avance<br>

------=_Part_81277_13001058.1152086002465--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

8 réponses

Avatar
Guillaume
jerome kaluza wrote:
Bonjour j'essaie de faire un scrip qui verifie si 2 parametres qui sont
des noms de fichier sont bien indique, j'essaie de teste avec la valeur
vide mais meme si ce n'est pas vide, il rentre toujours dans le test :


controle="$1"
donnees="$2"
if (test $controle="") then
echo "erreur: fichier de controle non specifie";
exit;
fi
if (test $donnees="") then
echo "fichier csv non specifie";
exit;
fi


ou est mon erreur ??

merci d'avance



je suis pas un tueur en shell script....
mais je l'écrirais comme ca ton script si j'ai bien compris ce que tu
veux faire....

--------------
#!/bin/bash

controle=$1
donnees=$2
if [ -z $controle ]; then
echo "erreur: fichier de controle non specifie"
exit 1
fi
if [ -z $donnees ]; then
echo "fichier csv non specifie"
exit 1
fi

exit 0
--------------

A plus
Guillaume


--
Guillaume
E-mail: silencer_<at>_free-4ever_<dot>_net
Blog: http://guillaume.free-4ever.net
---
Sites: http://www.free-4ever.net
http://wiki.free-4ever.net


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
laurent besson
Le mercredi 5 Juillet 2006 10:00, Guillaume a écrit :
#!/bin/bash

controle=$1
donnees=$2
if [ -z $controle ]; then


Il y a un _ESPACE_ de trop entre $controle et ]
echo "erreur: fichier de controle non specifie"
exit 1
fi
if [ -z $donnees ]; then


idem
echo "fichier csv non specifie"
exit 1
fi

exit 0



Sinon c'est bon !
Avatar
pascal
Guillaume a écrit :
jerome kaluza wrote:

Bonjour j'essaie de faire un scrip qui verifie si 2 parametres qui
sont des noms de fichier sont bien indique, j'essaie de teste avec la
valeur vide mais meme si ce n'est pas vide, il rentre toujours dans le
test :


controle="$1"
donnees="$2"
if (test $controle="") then
echo "erreur: fichier de controle non specifie";
exit;
fi
if (test $donnees="") then
echo "fichier csv non specifie";
exit;
fi


ou est mon erreur ??

merci d'avance




je suis pas un tueur en shell script....
mais je l'écrirais comme ca ton script si j'ai bien compris ce que tu
veux faire....

--------------
#!/bin/bash

controle=$1
donnees=$2
if [ -z $controle ]; then
echo "erreur: fichier de controle non specifie"
exit 1
fi
if [ -z $donnees ]; then
echo "fichier csv non specifie"
exit 1
fi

exit 0
--------------

A plus
Guillaume




Guillaume a raison mais ce que tu écris pourrais marcher avec
if test -z "$donnees"; then ...
Pascal

--
Haut par-dessus leur tête voguaient les blanches sculptures
des nuages, comme en la cervelle de Michel-Ange des volutes
de concept.
M. Lowry


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
jerome kaluza
------=_Part_81907_13008807.1152087652185
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Le 05/07/06, laurent besson a écrit :

Le mercredi 5 Juillet 2006 10:00, Guillaume a écrit:
> #!/bin/bash
>
> controle=$1
> donnees=$2
> if [ -z $controle ]; then
Il y a un _ESPACE_ de trop entre $controle et ]
> echo "erreur: fichier de controle non specifie"
> exit 1
> fi
> if [ -z $donnees ]; then
idem
> echo "fichier csv non specifie"
> exit 1
> fi
>
> exit 0

Sinon c'est bon !

merci ca marche bien =))



------=_Part_81907_13008807.1152087652185
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

<br><br><div><span class="gmail_quote">Le 05/07/06, <b class="gmail_sen dername">laurent besson</b> &lt;<a href="mailto:">lo </a>&gt; a écrit :</span><blockquote class="gmail_qu ote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0p t 0.8ex; padding-left: 1ex;">
Le mercredi 5 Juillet 2006 10:00, Guillaume a écrit:<br>&gt; #!/bin/bash< br>&gt;<br>&gt; controle=$1<br>&gt; donnees=$2<br>&gt; if [ -z $control e&nbsp;&nbsp;]; then<br>Il y a un _ESPACE_ de trop entre $controle et ]<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;erreur: fichier de contr ole non specifie&quot;
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 1<br>&gt; fi<br>&gt; if [ -z $donnees&nbsp;&nbsp;]; then<br>idem<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;echo &quot;fichier csv non specifie&quot;<br>&gt;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;exit 1<br>&gt; fi<br>&gt;<br>&gt; exit 0<br><br>Sinon c'es t bon !<br><br></blockquote>
</div>merci ca marche bien =))<br>

------=_Part_81907_13008807.1152087652185--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Guillaume
jerome kaluza wrote:


Le 05/07/06, *laurent besson*
<mailto: a écrit :

Le mercredi 5 Juillet 2006 10:00, Guillaume a écrit:
> #!/bin/bash
>
> controle=$1
> donnees=$2
> if [ -z $controle ]; then
Il y a un _ESPACE_ de trop entre $controle et ]
> echo "erreur: fichier de controle non specifie"
> exit 1
> fi
> if [ -z $donnees ]; then
idem
> echo "fichier csv non specifie"
> exit 1
> fi
>
> exit 0

Sinon c'est bon !

merci ca marche bien =))



c'est sensible à l'espace en trop parce que j'ai pas mis les "" autour
des variables !!

Enfin, je suppose...

A plus
Guillaume


--
Guillaume
E-mail: silencer_<at>_free-4ever_<dot>_net
Blog: http://guillaume.free-4ever.net
---
Sites: http://www.free-4ever.net
http://wiki.free-4ever.net


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Francois Sauterey
Le Mercredi 5 Juillet 2006 09:53, jerome kaluza a écrit :
Bonjour j'essaie de faire un scrip qui verifie si 2 parametres qui sont des
noms de fichier sont bien indique, j'essaie de teste avec la valeur vide
mais meme si ce n'est pas vide, il rentre toujours dans le test :


controle="$1"
donnees="$2"
if (test $controle="") then
echo "erreur: fichier de controle non specifie";
exit;
fi
if (test $donnees="") then
echo "fichier csv non specifie";
exit;
fi





et quelque chose comme:
#!/bin/bash

usage() {
echo Usage: `basename $0` controle donnees
exit 1
}

[ $# -ne 2 ] && usage

[ ! -f $1 ] && echo "impossible d'ouvrir le fchier de contrôle $1" && exit 2
[ ! -f $2 ] && echo "impossible d'ouvrir le fchier de csv $2" && exit 2

--
Francois Sauterey
@: Francois_AT_Sauterey.org


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Vincent Danjean
Guillaume wrote:
jerome kaluza wrote:


Le 05/07/06, *laurent besson*
<mailto: a écrit :

Le mercredi 5 Juillet 2006 10:00, Guillaume a écrit:
> #!/bin/bash
>
> controle=$1
> donnees=$2
> if [ -z $controle ]; then
Il y a un _ESPACE_ de trop entre $controle et ]
> echo "erreur: fichier de controle non specifie"
> exit 1
> fi
> if [ -z $donnees ]; then
idem
> echo "fichier csv non specifie"
> exit 1
> fi
>
> exit 0

Sinon c'est bon !

merci ca marche bien =))



c'est sensible à l'espace en trop parce que j'ai pas mis les "" autour
des variables !!



Non, le nombre d'espace n'a aucune importance quand bash découpe la
commande et ses arguments. On peut donc mettre autant d'espace qu'on
veut (parfois utile quand on veut aligner les données pour une meilleure
lisibilité)

Par contre, je mettrais tes arguments entre "" pour deux raisons :
1) ils peuvent être vide. Dans ce cas, ça a peu d'importance car
c'est le dernier teste de la commande '['. Ça serait différent si tu
avais :
if [ -z $controle -o -z $donnees ]; then
qui est complètement différent de :
if [ -z "$controle" -o -z "$donnees" ]; then

2) ils peuvent avoir des espaces. Essaye d'appeler ton script avec
./script "argument avec espace" "toto titi"


Enfin, par rapport à une autre remarque dans ce thread, les commandes
'[' et 'test' font la même chose et peuvent être interchangées comme le
souhaite le développeur. Elles existent sous forme de programmes
dans /usr/bin/, mais ce sont aussi des commandes internes à bash
(utilisées en priorité par bash) donc dont la documentation précise se
trouve dans 'man bash' et pas 'man test' ou 'man ['

A+
Vincent


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
pascal
Vincent Danjean a écrit :


Enfin, par rapport à une autre remarque dans ce thread, les commandes
'[' et 'test' font la même chose et peuvent être interchangées comme le
souhaite le développeur. Elles existent sous forme de programmes
dans /usr/bin/, mais ce sont aussi des commandes internes à bash
(utilisées en priorité par bash) donc dont la documentation précise se
trouve dans 'man bash' et pas 'man test' ou 'man ['

A+
Vincent




Vi on le sait ...c'était pour "coller" le plus à la formulation initiale
et montrer qu'au prix d'une légère modif (emploi du test "-z") le cript
fonctionnait...
P.
--
Haut par-dessus leur tête voguaient les blanches sculptures
des nuages, comme en la cervelle de Michel-Ange des volutes
de concept.
M. Lowry


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact