Guillaume wrote: > jerome kaluza wrote: >> >> >> Le 05/07/06, *laurent besson* <[EMAIL PROTECTED] >> <mailto:[EMAIL PROTECTED]>> 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 [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]