[Shell Unix] Une question un peu compliquée

Une question un peu compliquée [Shell Unix] - Programmation

Marsh Posté le 05-04-2002 à 19:01:33    

Salut,
 
voilà, ça peut paraître idiot comme truc, mais c'est ça qu'on me demande de faire.
En gros, dans un fichier de conf, je dois faire des :
export var1 = ...
export var2 = ...
...
 
Et je dois vérifier ensuite si toutes les variables sont bien exportées.
Bon, c'est pas difficile, mais voilà le problème :
export var1 = ...
export var2 = $toto
où $toto est une variable qui n'a pas été définie.
Le shell me renvoit var2 : parameter null or not set, et sort sans que je puisse faire le contrôle qui suit. Donc, on ne peut par exemple pas loguer qu'un paramètre n'a pas été bien initialisé.
 
Est-ce que quelqu'un voit comment faire en sachant qu'on ne peut toucher au fichier de conf.

Reply

Marsh Posté le 05-04-2002 à 19:01:33   

Reply

Marsh Posté le 05-04-2002 à 19:07:35    

if [ -z $toto ]; then
  echo Pas pu initialiser var2.
else
  export var2="$toto"
fi


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 05-04-2002 à 23:49:40    

Jar jar : -z vérifie qu'une variable est une chaîne vide, pas qu'elle n'est pas définie!
 
A mon avis, tu as tout intérêt a ajouter :
 
if [ ! $toto] || [ -z $toto ] ; then
...

Reply

Marsh Posté le 06-04-2002 à 13:30:29    

gfive a écrit a écrit :

Jar jar : -z vérifie qu'une variable est une chaîne vide, pas qu'elle n'est pas définie!


Oui, mais en sh, contrairement au csh, une variable non définie apparaît comme une chaîne vide.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 06-04-2002 à 19:33:46    

ah, bah j'aurais appris qqchose, alors!! :D
Mais en bash, il faut mettre les deux.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed