IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script pour exécuter plusieurs fois plusieurs programmes


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut Script pour exécuter plusieurs fois plusieurs programmes
    Bonjour,

    J'aimerais faire tourner 3 programmes successifs (en fortran) et sauver tous les fichiers crées dans un répertoire propre (nommé models)
    à la fin de chaque itération, je dois ouvrir des fichiers de paramètres, en changer quelques un et relancer tout le bousin

    Pour ce faire j'ai commencé un script en bash

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/bash
     
    models="102 103 104"
    for model in $models
    do
    mkdir $model
    ../../bin/prog1
    ../../bin/prog2
    mpirun prog3
    done
    Je n'ai pas avancé beaucoup alors j'aurais 2 questions :

    - Comment envoyer directement les sorties de mes programmes dans le répertoire fraîchement crée (ex: 102, pour le 1er) en évitant les copié-collés

    - Comment ensuite changer un paramètre dans un fichier donnée ?

    Merci pour toutes aides, astuces ou conseils.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 686
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 686
    Par défaut
    Bonjour,

    Comment envoyer directement les sorties de mes programmes dans le répertoire fraîchement crée (ex: 102, pour le 1er) en évitant les copié-collés
    avec une redirection, en utilisant la variable...
    Comment ensuite changer un paramètre dans un fichier donnée ?
    'comprends pas
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,


    avec une redirection, en utilisant la variable...
    'comprends pas
    Bonjour,

    Quel genre de redirection ? car je ne peux pas utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ../../bin/prog1 > $model/result_prog1.txt
    car mes fichiers de sorties sont déjà nommés par le programme en question et peuvent eux même avoir des noms compliqués suivant les paramètres donnés.
    Il me faudrait un "truc" qui me disent

    "quelque soit les fichiers qui proviennent de cette ligne de commande je les met dans ce répertoire"

    Merci

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 378
    Par défaut
    Bonjour,

    Toujours rien compris du problème.

    Comment fais tu actuellement, à la main, pour résoudre ton problème ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut
    je lance ces commandes successivement dans mon bash

    ../../bin/prog1
    ../../bin/prog2
    mpirun prog3

    le programme 1 me renvoi 4 fichiers utilisés dans le 2 qui lui même en sort 6 autres utilisés dans le prog 3 qui lui calcul tous résultats placés dans une multitude de fichiers.

    Ensuite je copie colle tous mes résultats dans un autre répertoire que je crée à main,
    je réédite 3 fichiers textes différents de paramètres qui sont utilisés par les 3 programmes,
    et je relance

    ../../bin/prog1
    ../../bin/prog2
    mpirun prog3

    et ainsi de suite

    C'est le programme 3 qui peut s'avérer très long, et c'est dans l'optique de faire bosser mon PC tout seul de nuit que j'aimerais faire un script pour qu'il puisse lancer les programmes > placer les fichiers dans un répertoire > changer les paramètres de fichiers d’initiation txt > relancer

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 686
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 686
    Par défaut
    ok, on va reprendre proprement :

    tant_que (tant que quoi ?)
    • édition de 3 fichiers paramètres (avec quelles données ?)
    • prog1 #crée 4 fichiers (quel est le format de leurs noms ?)
    • prog2 #crée 6 fichiers (idem)
    • prog3 # crée z fichiers (idem)
    • déplacement des z derniers fichiers (où ? et, que fait-on des 10 premiers ?)
    fin tant_que
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. [Débutant] Script pour exécuter plusieurs fois un programme
    Par camelia136 dans le forum MATLAB
    Réponses: 4
    Dernier message: 01/08/2011, 11h07
  2. scipt pour exécuter plusieurs fois un programme
    Par djocin dans le forum Linux
    Réponses: 5
    Dernier message: 02/05/2011, 05h13
  3. Réponses: 2
    Dernier message: 12/01/2010, 13h00
  4. Réponses: 0
    Dernier message: 19/01/2009, 11h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo