Bonjour,
je fais du calcul de structures; il existe dans ma boite une procédure de lancement pour les grosses analyses qui durent plusieurs heures, cependant, pour de tout petits runs de vérification préalable, répondre aux diverses questions que pose ce script me prend plus de temps que le calcul lui mÁme; donc je veux automatiser mes réponses par un autre script, qui analyserait pour moi les questions du premier, et répondait selon mes propres besoins et avec la logique que je lui aurait donne.
Par exemple, la première procédure se lance par $ /usr/expl/bin/qnastran.3.3 et elle pose une dizaine de questions qui commencent par :
Et il me suffit de répondre nast20055 (+RTN).Les versions nastran disponibles sont :
nast20055
nast2008
Entrez la version de nastran désirée :
Il y a par la suite une petite dizaine de questions, avec parfois des valeurs par défaut ou il suffit de faire RTN.
Je voudrais donc faire un script qui réponde aux questions de ce premier script selon mes besoins, mais un "pipe" ne suffit pas; il me faut en effet non seulement que (l’entrée standard de) mon script "lise" (ou soit reliÅe È) la sortie standard de la procédure de lancement des jobs, mais il faut aussi que cette procédure soit alimentée par les réponses que fabriquerait mon script.
J'ai essayÅ de commencer ceci avec un "pipe", mais µa ne va pas; quand je fais :
$ /usr/expl/bin/qnastran.3.3|Snas.sh avec Snas.sh comme suit :
alors mon script ci dessus répond bien à la première question et affiche la réponse à l’écran, mais celle ci n'est pas prise en compte par le script qnastran.3.3 qui devrait lancer le job, puisque son entrée standard à lui est vide. (Il faudrait que la sortie standard du deuxième script soit recopiée sur l’entrée standard du premier script; ce serait une espèce de "pipe" à l'envers mais je ne sais pas comment faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 while read LINE do echo $LINE if [ $(echo $LINE|grep "Entrez la version de nastran desiree"|wc -l) -gt 0 ]; then echo nast20055 fi if [ $(echo $LINE|grep "Entrez les serveurs de licence que vous souhaitez utiliser"|wc -l) -gt 0 ]; then echo ca-msclic.geci.net+su-msclic.geci.net+msclic.geci.net+ishp170.geci.net fi echo done
J’espère que vous pourrez me donner des pistes de recherche ou des solutions;
merci,
David
Partager