Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1225 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Automatiser la création d'un script à partir d'une liste

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Automatiser la création d'un script à partir d'une liste

n°1404761
cooltiti
Mangez du rebloch' !
Posté le 11-07-2006 à 16:15:59  profilanswer
 

Bonjour,
 
pour la bille en shell unix que je suis, j'aurais besoin d'un gros coup de main...
 
voilà, j'ai grosso modo 80 shell à créer. Ils vonts tous se ressembler, les seuls choses qui vont changer seront le nom du script bien sûr et 2 lignes dans le script.
 
Evidemment, j'aimerais autant éviter d'avoir à créer ces 80 scripts à la main.
 
 
Donc, j'aurais un fichier "liste.txt" avec ma liste à l'intérieur du type :
 
NOM1
NOM2
NOM3
...
 
 
je voudrais donc que ça me créé autant de fichier qu'il y a de lignes :
 
lance_NOM1.sh
lance_NOM2.sh
lance_NOM3.sh
 
 
et dans chacun de ces scripts j'aurais
 
#!/bin/ksh
###############################################################################
#
# FILE lance_NOM1.sh
#
# DESC
...patatipatata
...patatipatata
 
execute_fonction.sh $param1 $NOM1 $param3
 
 
etc. etc.
 
Merci d'avance pour vos réponses


---------------
Tant va la cruche à l'eau, qu'à la fin, j'ai soif... | Topic parapente | Moniteur ski et pararapente, Val d'Isère, Tarentaise
mood
Publicité
Posté le 11-07-2006 à 16:15:59  profilanswer
 

n°1404800
Bleuarff
pouet
Posté le 11-07-2006 à 16:43:39  profilanswer
 

Et pourquoi pas un seul script auquel tu passes les paramètres adéquats ?


---------------
©2008 Bleuarff Corp.
n°1404816
cooltiti
Mangez du rebloch' !
Posté le 11-07-2006 à 16:54:50  profilanswer
 

bah faut suivre un minimum l'existant...  
 
c'est pour ça que je veux créer un script auquel je passe en paramètre un fichier avec une liste de nom, et un modèle de script dans lequel j'irais modifier les 2 parties qui vont bien, et le tout sera enregistrer dans un nouveau fichier avec le nom qui va bien aussi (j'espère que je ne suis pas trop confus là...   :sweat: )


---------------
Tant va la cruche à l'eau, qu'à la fin, j'ai soif... | Topic parapente | Moniteur ski et pararapente, Val d'Isère, Tarentaise
n°1404828
Elmoricq
Modérateur
Posté le 11-07-2006 à 17:09:54  profilanswer
 

Vraiment impossible de le changer, ce modèle existant ?
 
Parce que, bon, 80 scripts... :sweat:
 
Sinon tu crées un script "template" avec des champs bien définis et identifiables (genre "%FILENAME%" ), et pour chaque jeu de variables de ta liste, tu crées un nouveau script à coup de cat|sed sur ton template...

n°1404902
cooltiti
Mangez du rebloch' !
Posté le 11-07-2006 à 18:11:07  profilanswer
 

nan, c'est vraiment pas possible... au boulot c'est comme ça, et c'est tout (sont un peu bête mais bon...)
 
et en fouillant un peu, j'avais effectivement trouvé la fonction sed... ensuite, un petit coup de concaténationet de copier/coller sous excel, un copier/coller de mes 80 lignes sous unix, et ça marchait nickel.
 
merci bien en tt cas :jap:


---------------
Tant va la cruche à l'eau, qu'à la fin, j'ai soif... | Topic parapente | Moniteur ski et pararapente, Val d'Isère, Tarentaise
n°1404933
Sve@r
Posté le 11-07-2006 à 19:25:11  profilanswer
 

cooltiti a écrit :

Bonjour,
 
pour la bille en shell unix que je suis, j'aurais besoin d'un gros coup de main...
 
voilà, j'ai grosso modo 80 shell à créer. Ils vonts tous se ressembler, les seuls choses qui vont changer seront le nom du script bien sûr et 2 lignes dans le script.
 
Evidemment, j'aimerais autant éviter d'avoir à créer ces 80 scripts à la main.
 
 
Donc, j'aurais un fichier "liste.txt" avec ma liste à l'intérieur du type :
 
NOM1
NOM2
NOM3
...
 
 
je voudrais donc que ça me créé autant de fichier qu'il y a de lignes :
 
lance_NOM1.sh
lance_NOM2.sh
lance_NOM3.sh
 
 
et dans chacun de ces scripts j'aurais
 
#!/bin/ksh
###############################################################################
#
# FILE lance_NOM1.sh
#
# DESC
...patatipatata
...patatipatata
 
execute_fonction.sh $param1 $NOM1 $param3
 
 
etc. etc.
 
Merci d'avance pour vos réponses


 
Bien que ce soit totalement idiot, voici une solution qui fait exactement ce que tu veux
 

#!/bin/sh
# Script idiot qui génère des scripts identiques à partir d'une ligne lue dans un fichier
 
# Stockage du fichier à lire dans le buffer n° 3
exec 3<file.txt
 
# Lecture du buffer 3 ligne par ligne
while read lig 0<&3
do
    # Ecriture du script
    (
         echo "#!/bin/ksh"
         echo "#################################"
         echo "#"
         echo "FILE lance_$lig.sh"
         echo "#"
         echo "# DESC"
         echo "...patatipatata"
         echo "...patatipatata"
         echo "execute_fonction.sh \$param1 $lig \$param3"
     ) > lance_$lig.sh
done


 

cooltiti a écrit :

nan, c'est vraiment pas possible... au boulot c'est comme ça, et c'est tout (sont un peu bête mais bon...)


 
Faut que tu leurs dises, au boulot, qu'ils arrêtent d'être stupides !!!
Tu leurs montres ce script

#!/bin/ksh
###############################################################################
#
# FILE lance_le_nom_que_tu_veux.sh
#
# DESC
...patatipatata
...patatipatata
 
execute_fonction.sh $param1 $1 $param3
 
 
etc. etc.


 
Et tu leur dis que ce script unique lance le nom que tu veux. Tu le lances juste en donnant le nom qui va bien en paramètre...

Message cité 1 fois
Message édité par Sve@r le 11-07-2006 à 19:31:35

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1404948
cooltiti
Mangez du rebloch' !
Posté le 11-07-2006 à 20:07:46  profilanswer
 

Sve@r a écrit :


 
Faut que tu leurs dises, au boulot, qu'ils arrêtent d'être stupides !!!
Tu leurs montres ce script

#!/bin/ksh
###############################################################################
#
# FILE lance_le_nom_que_tu_veux.sh
#
# DESC
...patatipatata
...patatipatata
 
execute_fonction.sh $param1 $1 $param3
 
 
etc. etc.


 
Et tu leur dis que ce script unique lance le nom que tu veux. Tu le lances juste en donnant le nom qui va bien en paramètre...


 
ben justement...chaque script que je vais générer sera exactement de ce type là...
 
Mais je trouvais ça galère de faire 80 cp d'1 script, puis ensuite du vi pour modifier 2 lignes...
Autant faire un script qui génère ces fichiers justement.
 
Mais j'ai pu me faire un fichier du type
 
sed -e 's/AAAAA/nom_qui_fait_chier/' -e 's/BBBBB/NOM_QUI_FAIT_ENCORE_CHIER_MAIS_EN_MAJUSCULES/' fichier_template>nom_qui_fait_toujours_chier.sh
 
 
en préparant ça dans un fichier excel pour mes 80 lignes, ça m'a prit 3mn.
Ensuite, j'ai copié l'ensemble des lignes dans un script et lancé le script ensuite, et tout c'est passé comme je le souhaitais.
 
Mais merci encore pour ton aide    ;)


Message édité par cooltiti le 11-07-2006 à 20:08:54

---------------
Tant va la cruche à l'eau, qu'à la fin, j'ai soif... | Topic parapente | Moniteur ski et pararapente, Val d'Isère, Tarentaise

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Automatiser la création d'un script à partir d'une liste

 

Sujets relatifs
requête sql sur fichiers dBase à partir d'excelAutomatiser fonction d'envoi de mails via site
[pb]A partir d'un formulaire copie dans un txtTracer à partir des données d'un fichier texte contenu dans une variab
Access:extraire des données à partir de HTMLLegers decalage a partir de 1280*1024
Problème de rafraichissement d'une liste déroulanteCréation de factures en PDF --- Résolu
[Javascript] Liste à choix multiple - Tout sélectionnerRecupérer une URL a partir d'une autre qui y pointe par redirection?
Plus de sujets relatifs à : Automatiser la création d'un script à partir d'une liste


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR