|Résolu] Script et "script.ini"

|Résolu] Script et "script.ini" - Linux et OS Alternatifs

Marsh Posté le 24-10-2005 à 23:17:34    

Bonsoir,
 
J'ai créé un script shell qui télécharge un fichier à partir d'une url,
et envoie un e-mail une fois la tâche achevée.
 
J'aimerais que les paramètres de type adresse url / destinataire e-mail etc...  
soient stockés dans un fichier "script.ini" séparé, dans lequel le script irait puiser les informations.  
 
Est-ce envisageable avec un scrip bash ? Doit-on passer par PERL ?
Pourriez-vous m'éclairer sur la syntaxe ?
 
D'avance merci


Message édité par kafifi le 04-11-2005 à 18:25:16
Reply

Marsh Posté le 24-10-2005 à 23:17:34   

Reply

Marsh Posté le 24-10-2005 à 23:39:09    

pour le script bash, le plus simple selon moi est de passer par un source du fichier de conf. Je m'explique:
 
au début de tscript tu fais  
 
. /etc/tonfichier_de_conf   < attention a l'espace apres le point
 
A ce moment la, bash va inclure le fichier apres le point, fichier dans lequel tu initialises tes variables ... a la syntaxe bash bien sur, et SANS le shebang, mais bon, a toi de la préciser dans les commentaires du fichier de conf ...

Reply

Marsh Posté le 25-10-2005 à 00:27:48    

trictrac a écrit :

pour le script bash, le plus simple selon moi est de passer par un source du fichier de conf. Je m'explique:
 
au début de tscript tu fais  
 
. /etc/tonfichier_de_conf   < attention a l'espace apres le point
 
A ce moment la, bash va inclure le fichier apres le point, fichier dans lequel tu initialises tes variables ... a la syntaxe bash bien sur, et SANS le shebang, mais bon, a toi de la préciser dans les commentaires du fichier de conf ...


@trictrac,  
ta solution fonctionne parfaitement !
Est-ce utilisable également sous un script Perl ?
 
Merci.
A+


Message édité par kafifi le 25-10-2005 à 00:28:06
Reply

Marsh Posté le 25-10-2005 à 18:05:43    

en perl, j'ai demandé il ya peu sur prog, et on m'a dit d'aller voir sur CPAN tous les modules qui commencent par Config::
En particulier Config::Tiny qui est facile a mettre en place, et fonctionne super bien ...

Reply

Marsh Posté le 25-10-2005 à 19:28:06    

trictrac a écrit :

en perl, j'ai demandé il ya peu sur prog, et on m'a dit d'aller voir sur CPAN tous les modules qui commencent par Config::
En particulier Config::Tiny qui est facile a mettre en place, et fonctionne super bien ...


 
Je vais aller y jeter un oeil.
Merci pour tout.

Reply

Marsh Posté le 25-10-2005 à 19:34:00    

en perl, tu peut aussi utiliser la même methode, en faisant un
require "mon_fichier_de_conf";
et en utilisant dedans la syntaxe du perl...
 
mais utiliser un system comme Config::Tiny ou bien même un fichier XML est moins dangereux, et surtout, permet de mettre des valeurs par defaut pour un script... et en plus, ca fait plus propre.

Reply

Marsh Posté le 04-11-2005 à 13:16:01    


Pourrais-tu m'en dire davantage ? Désolé si cela parait trivial, mais je suis débutant...
J'arrive à ouvrir le fichier ini grâce à "open, ..."  mais ensuite je coince.
 
Idem ici. Je suis intéressé par cette méthode plus propre,. J'ai récupéré le package "Config::Tiny" mais je ne sais pas comment l'utiliser. Je n'ai pas trouvé de faq sur le sujet.
 
Merci d'avance.

Reply

Marsh Posté le 04-11-2005 à 13:59:11    

kafifi a écrit :

Pourrais-tu m'en dire davantage ? Désolé si cela parait trivial, mais je suis débutant...
J'arrive à ouvrir le fichier ini grâce à "open, ..."  mais ensuite je coince.
[/quote]
en perl, pour faire un include d'un fichier (executer le code d'un fichier ), il suffit de faire  

Code :
  1. require "mon_fichier" ;


 

Citation :


Idem ici. Je suis intéressé par cette méthode plus propre,. J'ai récupéré le package "Config::Tiny" mais je ne sais pas comment l'utiliser. Je n'ai pas trouvé de faq sur le sujet.


un `man -k config | grep \(3p\) | grep Tiny `
devrait surement t'aider... (je ne connait pas du tout Config::Tiny, mais les pages de manuel sont souvent dispo avec les paquets... )
 
[quote]
Merci d'avance.


De rien...

Reply

Marsh Posté le 04-11-2005 à 14:57:44    


Je vais avoir besoin de précisions suplémentaires  :ouch:  
 
mon script.ini :
my $Version="ceci_est_ma_version";
 
mon sript perl :
#!/usr/bin/perl -w
use strict;
 
require "script.ini";
print $Version;
 
J'ai un msg d'erreur    Global symbol "$V" requires explicit package name at ...
 
Autrement dit, my $Version n'est pas "lu".
Quel est donc le pb ?

Reply

Marsh Posté le 04-11-2005 à 15:02:55    

ah oui, mince...
 
dans le fichier requis :  
package "toto";
 
et dans l'autre :
require "fichier";
print $toto::Version ;

Reply

Marsh Posté le 04-11-2005 à 15:02:55   

Reply

Marsh Posté le 04-11-2005 à 18:24:56    


 
Super cela marche  :pt1cable:  
=> A condition toutefois d'enlever les quotes de toto.
 
Merci pour ton aide bibiskuk !

Reply

Marsh Posté le 04-11-2005 à 20:11:36    

oups, au temps pour moi...

Reply

Sujets relatifs:

Leave a Replay

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