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 :

Variable dont le contenu est dupliqué :A=/data devient A=/data/data


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Variable dont le contenu est dupliqué :A=/data devient A=/data/data
    Bonjour;

    Je travaille sur une VM Centos 6.5 64bits.
    J'ai développé un script de support qui marchait très bien jusqu'à ce matin, date à laquelle j'ai fais une modif infime (rajouter un contrôle, modif que j'ai défaite bien sûr).

    Le script commence comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash
    TOP=/data/prog
    ...
    ...
    grep xxxx $TOP/monfichier.dat
    Cette ligne ne marche plus (et bien d'autres qui font référence à $TOP) puisque TOP vaut : /data/prog/data/prog
    Il a concaténé le contenu!
    Et j'ai beau faire n'importe quoi, rien n'y fait.
    Si je mets le chemin en dur dans la ligne, ça marche , mais c'est sans intérêt!

    Ce qui est encore plus bizarre, c'est que j'ai copié le script dans une sous directorie quelconque de /tmp et fait les 2 ou 3 ajustements qui vont bien, et là, ça remarche nickel! C'est extraordinaire (et il me semble avoir déja eu ce comportement y a quelques temps, mais ailleurs).



    Est-ce quelqu'un a déjà eu ce genre de comportement? Comment je peux comprendre (et corrigé) un truc pareil?

    En vous remerciant;
    Cordialement.
    Pierre S.

    ps: le script est petit (# 150 lignes au plus et ne manipule aucune grosse données (fichier,tableau,liste..)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Bonjour,

    tu peux nous afficher le retour de grep TOP chemin/tonScript, stp ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    En fait, c'est un cat suivi d'un grep -v ^# mais ça le fait partout:

    La ligne est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat $TOP/$RELEASE/$FMACH | grep -v ^#
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TOP=/gigatune01/home/erif6
    RELEASE=cos6
    FMACH=liste_machine.csv

    Le résultat est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat: /gigatune01/home/erif6/cos6//gigatune01/home/erif6/cos6/liste_machines.csv: No such file or directory
    Je l'utilise partout, et c'est partout pareil!
    Alors que c'est trivial!

    Si vous avez déja eu ça.

    En vous remerciant.

    Pierre S.

  4. #4
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    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 276
    Points : 12 717
    Points
    12 717
    Par défaut
    Bonjour,

    Avec quel éditeur tu édites ton fichier ?

    Ici, cela ressemble fortement à un script au format unix qui est passé au format dos suite à l'édition...
    Cordialement.

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    vi
    Et le script n'est jamais sorti du monde Unix.
    J'y avais pensé aussi

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Salut,

    bon, et si tu créais un script minimaliste, avec juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash
    TOP=/gigatune01/home/erif6
    RELEASE=cos6
    FMACH=liste_machine.csv
    cat $TOP/$RELEASE/$FMACH
    et que tu nous donnes son résultat ?

    Ps : au lieu de mettre ton code en bleu, il existe dans l'éditeur du forum le bouton CODE, après avoir sélectionné les lignes qui vont bien (le dièse # au bout de la deuxième ligne). Merci.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    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 276
    Points : 12 717
    Points
    12 717
    Par défaut
    Ok, dans ce cas, il nous manque des informations...

    Puisque ton script ne fait que 150 lignes, peux-tu nous le soumettre en attachement celui qui te pose problème ?
    Cordialement.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    on ne s'est pas compris :
    je voudrais que tu fasses un grep sur ton script, de façon à faire apparaître toutes les lignes de ton script où figure le mot TOP.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut grep TOP monscript
    [erif6@gigatune Scripts]$ grep -n TOP erif_manager.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    3:TOP=/gigatune01/home/erif6
    5:FMACH=$TOP/$RELEASE/liste_machines.csv
    6:FUSER=$TOP/$RELEASE/liste_comptes.csv
    7:FTOOL=$TOP/$RELEASE/TOOLS_LIST.INS
    8:UpdateScript=$TOP/Scripts/update_dhcp_from_liste-machines.sh
    21:     echo "  ~~~~ Top level is : $TOP release is $RELEASE ~~~~ "
    89:     54 : run a Shell at $TOP level (exit or <ctrl>D to leave
    145:           52) $TOP/Scripts/liste_machines_and_dhcp_manual_update.sh $MACHINE ;;
    146:           53) view $TOP/$RELEASE/ks-fr.cfg ;;
    155:  echo "sub Update_machine cmd is :   $EDITOR $TOP/$RELEASE/$FMACH"
    156:  $EDITOR $TOP/$RELEASE/$FMACH
    169:cat $TOP/$RELEASE/$FMACH | grep -v ^# | more
    180:$TOP/Scripts/update_dhcp_from_liste-machines.sh $MACHINE  C
    197:$TOP/Scripts/update_dhcp_from_liste-machines.sh $MACHINE  U
    229:$EDITOR $TOP/$RELEASE/$FUSER
    236:$EDITOR $TOP/$RELEASE/$FTOOL
    243:#$EDITOR $TOP/$RELEASE/$part.csv
    303:ver=$(tail -1  $TOP/$RELEASE/version | /bin/awk '{print $2 $3}')
    [erif6@gigatune Scripts]$

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    il y a une redite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FMACH=$TOP/$RELEASE/
    ...
    cat $TOP/$RELEASE/$FMACH | ...
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  11. #11
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Merci N_BaH

    J'avais le nez dans le guidon, et je l'ai pas vu.
    La methode de debug de grep <variable-qui-a-un-souci> monscript.sh est très efficace.

    Merci encore.

    Cordialement.

    Pierre S.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détecter les cellules dont le contenu est souligné
    Par Dakuan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/07/2008, 12h32
  2. Réponses: 7
    Dernier message: 27/12/2007, 09h36
  3. [XSLT] des noeuds dont le contenu est forcément différent
    Par DelphLaga dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 13/10/2006, 19h06
  4. Fenêtre dont le contenu est dynamique (lié a un menu)..
    Par fredrider dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/10/2006, 12h14
  5. Réponses: 4
    Dernier message: 05/06/2002, 14h35

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