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 :

[bash] Source tableau associatif : "» : identifiant non valablere: « tableau"


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 210
    Points : 91
    Points
    91
    Par défaut [bash] Source tableau associatif : "» : identifiant non valablere: « tableau"
    Bonjour à tous,

    J'ai un problème à récupérer des données externes.
    Voici un code qui fonctionne :
    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
    19
    20
    21
    22
    23
    24
     
    #!/bin/bash
     
    declare -A tableau
    tableau[0,0]="noir"
    tableau[0,1]=12
    tableau[0,2]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,3]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,4]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,5]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,6]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,7]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,8]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,9]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,10]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,11]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,12]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,13]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[1,0]="pub1"
    tableau[1,1]=30
    tableau[1,2]="01"
    echo "${tableau[0,0]}"
    echo "${tableau[0,1]}"
    echo "${tableau[0,2]}"
    Ce qui me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    noir
    12
    0000000000000000000000000000000000000000000000000000000000000000
    Par contre, lorsque je crée un fichier externe, cela ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #!/bin/bash
    source variable.sh
    echo "${tableau[0,0]}"
    echo "${tableau[0,1]}"
    echo "${tableau[0,2]}"
    Voici le fichier variable.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
    19
    #!/bin/bash
    declare -A tableau
    tableau[0,0]="noir"
    tableau[0,1]=12
    tableau[0,2]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,3]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,4]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,5]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,6]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,7]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,8]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,9]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,10]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,11]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,12]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[0,13]="0000000000000000000000000000000000000000000000000000000000000000"
    tableau[1,0]="pub1"
    tableau[1,1]=30
    tableau[1,2]="01"
    Cela me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     » : identifiant non valablere: « tableau
    pub1
    30
    01

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    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 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par sebaaas Voir le message
    Cela me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     » : identifiant non valablere: « tableau
    pub1
    30
    01
    Je ne peux pas bien tester car je suis sous macos avec un bash n'acceptant l'option "-A"...

    Mais plusieurs choses me paraissent suspectes.

    Pourquoi le message d'erreur contient-il des guillemets typographiques » et « et non des guillemets normaux "?
    Pourquoi le message d'erreur contient-il identifiant non valablere et non identifiant non valable?
    Se pourrait-il qu'il y ait des caractères "bizarres"?
    Es-tu entièrement sous linux ou utilises-tu aussi un PC sous windoze?

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    Bonjour

    Utiliser des tableaux multidimensionnels, avec un bash qui ne les connaît pas, n'est pas une bonne idée.
    Appeler son fichier *.sh alors que c'est *.bash, n'est pas une bonne idée.

    Il y a d'autres moyens de faire.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 539
    Points : 19 361
    Points
    19 361
    Par défaut
    on peut bricoler, avec un séparateur défini, des tableaux multidimensionnels.
    mais c'est une galère !...
    en plus, les tableaux associatifs ne respectent pas l'ordre des indices donnés, ou celui d'entrée des données.

    j'ai testé, je ne parviens pas à reproduire le problème.

    je plussoie jack-ft : tout a été écrit sur Linux ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 210
    Points : 91
    Points
    91
    Par défaut
    Effectivement, je suis démasquer : je travaille avec virtual box sous windows

    j'ai testé, je ne parviens pas à reproduire le problème.
    Qu'avez vous obtenu?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 539
    Points : 19 361
    Points
    19 361
    Par défaut
    ce que ça doit produire : le contenu des éléments du tableau.
    aucune erreur.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 210
    Points : 91
    Points
    91
    Par défaut
    Merci

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 210
    Points : 91
    Points
    91
    Par défaut
    J'ai résolu le problème comme suit :

    1) j'en encoder les fichiers en UTF-8

    donc dans vim :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    :set bomb
    :set fileencoding=utf-8
    :wq
    Puis j'ai suivi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    apt-get update
    apt-get install dos2unix
    dos2unix MonScript.sh
    Et tout fonctionne.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 25/01/2017, 21h11
  2. Tri d'un tableau associatif en bash
    Par blackbird1 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 25/07/2016, 15h10
  3. Récupération de clé d'un tableau associatif dans un nouveau tableau
    Par simondll dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 07/12/2013, 14h12
  4. Comment integrer tableau associatif php dans un tableau JS
    Par salyiohh dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/07/2013, 19h11
  5. Tableau associatif non modifiable
    Par Général03 dans le forum Langage
    Réponses: 2
    Dernier message: 14/01/2010, 18h56

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