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]

Répondre à