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 - Tableau


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Bash - Tableau
    Bonsoir ,

    Supposons que nous avons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/bash
    nom[0]='Bonjour'
    nom[1]='Monsieur'
    echo ${nom[0]}
    Si je veux afficher Bonjour Monsieur

    J'ai vu qu'il y avait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo ${nom[@]} # Qui permet d'afficher tous les éléments , mais également : 
    echo ${nom[*]} # qui permet d'appeler l'ensemble du tableau
    Que prendre dans ce cas , quelles différences ?

    Merci d'avance

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

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

    soit array=(titi 'toto tata'), sans guillemets, il n'y a aucune différence, le tableau sera considéré comme autant d'éléments qu'il y a de mots :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    printf '%s\n' ${array[@]}
    titi
    toto
    tata
    printf '%s\n' ${array[*]}
    titi
    toto
    tata
    entre guillemets, "$@" sera considéré comme autant d'éléments différents qu'il y a d'éléments dans le tableau, alors que "$*" sera considéré comme un seul élément.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    printf '%s\n' "${array[@]}"
    titi
    toto tata
    printf '%s\n' "${array[*]}"
    titi toto tata
    ce n'est pas valable que pour les tableaux, mais également pour les paramètres positionnels.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Donc si je comprends bien , les deux marcheront ?

    Donc sans parenthèses , * et @ sont identiques ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 714
    Par défaut
    j'ai édité mon premier message avant de lire ta réponse.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Mais dans mon premier message , pour afficher Bonjour Monsieur , les deux sont bon sans parenthèse ? * et @ sont identiques sans parenthèses ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 714
    Par défaut
    bon ?
    ça dépend pour quoi faire.
    de toutes façons,avec echo tout le tableau s'affichera sur une seule ligne.

Discussions similaires

  1. Script Bash - Tableau de tableau
    Par pachalcs dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 04/11/2012, 16h35
  2. [BASH] Tri d'un tableau
    Par Paniez dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 05/10/2009, 11h34
  3. Explode en bash dans un tableau
    Par Maillon dans le forum Linux
    Réponses: 6
    Dernier message: 18/11/2008, 09h18
  4. Parcours de tableau en bash
    Par sliderman dans le forum Linux
    Réponses: 2
    Dernier message: 18/12/2007, 12h44
  5. Réponses: 1
    Dernier message: 07/08/2007, 14h05

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