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 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    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.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  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 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    j'ai édité mon premier message avant de lire ta réponse.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  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 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    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.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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, 15h35
  2. [BASH] Tri d'un tableau
    Par Paniez dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 05/10/2009, 10h34
  3. Explode en bash dans un tableau
    Par Maillon dans le forum Linux
    Réponses: 6
    Dernier message: 18/11/2008, 08h18
  4. Parcours de tableau en bash
    Par sliderman dans le forum Linux
    Réponses: 2
    Dernier message: 18/12/2007, 11h44
  5. Réponses: 1
    Dernier message: 07/08/2007, 13h05

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