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 :

Ecrire des instructions dans un autre fichier sh


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 75
    Par défaut Ecrire des instructions dans un autre fichier sh
    Bonjour,

    Cela peut paraître un peu compliqué, mais je lance un script sh pour créer un nouveau script sh.
    La premier script sh est lancé sur une plateforme A pour trouver des liens. Le second est lancé sur une autre plateforme B pour créer ces liens.

    Je suis dans le premier script sh. Le but est donc de ne faire qu'écrire un fichier avec des instructions. Mon problème est que je dois écrire un test dans le second script.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if [ -f $VERIFLINKDEST ]
    then
                LINK=`echo "$LABEL$LINKNAME" | sed "s/\/vobs_tag\/infinity//g"`
                LINKMKDIR=`echo "\"${LINK%/*}\""`
                mkdir -p $LINKMKDIR
    else
                #$LABEL$LINKDEST : Le fichier n'existe pas
    fi
    Le but serait donc d'écrire tout cela dans un fichier >>/data/clearcase/sortieLink_p.sh
    J'ai un peu de mal à savoir comment faire cela puisque j'ai plein de caractère spéciaux comme " / `

    Merci,

    Elodie

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

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

    en fait, tu veux exécuter des commandes sur le serveurB en utilisant les résultats du scriptA, qui, lui, est exécuté sur le serveurA ?
    donc, passer des variables via ssh, c'est ça ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 75
    Par défaut
    Ce n'est pas vraiment des variables car j'écris le second fichier à partir du résultat du premier. Mais plutôt arriver à faire toto=if ... then ... else... fi
    puis echo toto >>/sortieLink.sh

    Merci,

    Elodie

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 662
    Par défaut
    en admettant que tu parviennes à écrire dynamiquement ton deuxième script
    je continue à penser que ce n'est pas la bonne manière de faire, mais bon, «c'est vous qui voyez»,
    quelle sera l'étape suivante ?

    --
    si tu veux que ce soit compliqué, ce sera compliqué, et ça te rebutera à force.
    l'efficacité est bien souvent dans la simplicité et la fluidité.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par Elodie11 Voir le message
    Bonjour,

    Cela peut paraître un peu compliqué, mais je lance un script sh pour créer un nouveau script sh.
    La premier script sh est lancé sur une plateforme A pour trouver des liens. Le second est lancé sur une autre plateforme B pour créer ces liens.

    Je suis dans le premier script sh. Le but est donc de ne faire qu'écrire un fichier avec des instructions. Mon problème est que je dois écrire un test dans le second script.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if [ -f $VERIFLINKDEST ]
    then
                LINK=`echo "$LABEL$LINKNAME" | sed "s/\/vobs_tag\/infinity//g"`
                LINKMKDIR=`echo "\"${LINK%/*}\""`
                mkdir -p $LINKMKDIR
    else
                #$LABEL$LINKDEST : Le fichier n'existe pas
    fi
    Le but serait donc d'écrire tout cela dans un fichier >>/data/clearcase/sortieLink_p.sh
    J'ai un peu de mal à savoir comment faire cela puisque j'ai plein de caractère spéciaux comme " / `

    Merci,

    Elodie
    Bonjour Elodie,
    je ne suis pas sûr d'avoir tout compris, mais je propose ceci:
    pour écrire un "tout cela avec plein de caractères spéciaux" dans un fichier, le plus simple (amha) est d'utiliser "<<":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    cat << EOT >>/data/clearcase/sortieLink_p.sh
    if [ -f $VERIFLINKDEST ]
    then
                LINK=`echo "$LABEL$LINKNAME" | sed "s/\/vobs_tag\/infinity//g"`
                LINKMKDIR=`echo "\"${LINK%/*}\""`
                mkdir -p $LINKMKDIR
    else
                #$LABEL$LINKDEST : Le fichier n'existe pas
    fi
    EOT
    Attention! Pour les variables ($VERIFLINKDEST $LABEL $LINKNAME etc.), si tu veux mettre dans "sortieLink_p.sh" la valeur qu'elles avaient sur la plateforme A, il faut laisser le script tel quel.
    En revanche, si tu veux que l'expansion soit faite sur la plateforme B, il faut remplacer les "$" par des "\$".

    Est-ce que cela répond à ta question?

    )jack(

Discussions similaires

  1. [XL-2010] Macro pour aller chercher des données dans un autre fichier
    Par GoToon dans le forum Macros et VBA Excel
    Réponses: 40
    Dernier message: 24/01/2015, 03h52
  2. Récupérer des valeurs dans un autre fichier excel fermé
    Par dominiqued dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/05/2014, 12h07
  3. Réponses: 2
    Dernier message: 14/02/2011, 19h30
  4. Ecrire des accents dans un fichier
    Par la_praline dans le forum C
    Réponses: 8
    Dernier message: 25/06/2008, 18h21
  5. Lire et ecrire des variables dans un fichier texte
    Par Lynecoln dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/02/2007, 14h16

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