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

Linux Discussion :

[Shell] Tableau --> chaîne


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 56
    Par défaut [Shell] Tableau --> chaîne
    Bonjour,

    Bon là vous allez me prendre pour un gros débutant, mais pas moyen de faire ce ci en shell ... ça m'énerve un peu d'être bloqué sur un problème si pourri.


    MonTab[0] = bibi
    MonTab[1] = bobo
    ... jusqu'à MonTab[x]

    Et je voudrais faire : MaChaîne = " bibi bobo ... "
    Il y a un espace au début des guillemets et à la fin.

    2ème problème con :

    je veux faire un echo de machaine
    machaine devent ressembler à : "blabla blabla $moncompteur+1"

    J'ai essayé plsueiurs syntaxe pas moyen de trouver ...

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    fournis déjà le script que tu as fait.

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 56
    Par défaut
    genre de script pour mon 2ème probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #/bin/bash
    compteur=1
    echo $compteur
    chaine = "blabla blabla $compteur+1"
    echo chaine
    Je sais que j'pourrais incrémenter compteur avant le echo et le décrémentert après mais bon mon patron va pas etre content la j'pense

    ET pour mon 1er problème c'est juste concaténer des variables en les séparant avec un espaces a chaque fois.

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Premier problème

    Pour afficher toutes la valeurs de ton tableau séparées par un espace, tu peux l'écrire ainsi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo ${monTableau[*]}
    Deuxième problème:

    si tu veux faire un calcul, une manière de faire peut-être la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chaine="blabla blabla $((compteur=$compteur+1))"

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 56
    Par défaut
    Bon bah merci en fait si on est obligé de faire une affectation pour faire un calcul c'est moche mais tanpis

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ah mais tu peux l'écrire sous une forme plus courte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chaine="blabla blabla $((compteur+=1))"

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Mygale1978 Voir le message
    Ah mais tu peux l'écrire sous une forme plus courte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chaine="blabla blabla $((compteur+=1))"
    Euh... il me semble qu'il ne veut pas incrémenter son compteur mais juste afficher la valeur...


    Citation Envoyé par Babybel54 Voir le message
    Bon là vous allez me prendre pour un gros débutant, mais pas moyen de faire ce ci en shell ... ça m'énerve un peu d'être bloqué sur un problème si pourri.
    Bah on a tous débutés. Je me souviens encore de la première fois où j'ai voulu intégrer un contenu d'un fichier texte dans une variable. Je n'avais aucune idée de comment faire. Mais pourquoi "gros" ?
    Bon c'est pas grave. Cours Shell Linux : http://linux.developpez.com/cours/

    Citation Envoyé par Babybel54 Voir le message
    genre de script pour mon 2ème probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #/bin/bash
    compteur=1
    echo $compteur
    chaine = "blabla blabla $compteur+1"
    echo chaine
    Je sais que j'pourrais incrémenter compteur avant le echo et le décrémentert après mais bon mon patron va pas etre content la j'pense
    Exact, ce serait horrible. Mygale1978 t'a donné une des solutions possibles. Une autre peut être de passer par l'outil principal du Bourne Shell => la délégation et déléguer le calcul à la commande expr en se contentant de récupérer ce que la commande affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine=" blabla blabla `expr $compteur + 1`"
    Cette méthode est plus primitive et, dans ce cas précis, périmée (car les shells récents savent maintenant calculer) mais elle a l'avantage d'être réutilisable dans toutes les situations où le shell ne sait pas faire => alors on fait appel à un programme externe et on récupère simplement le résultat pour peu que ce résultat ait été affiché par ledit programme

    Juste un détail hyper important: pas d'espace avant le "=" dans une affectation (chaine[pas d'espace ici]= "blabla). C'est hyper important car l'interpréteur shell est très limité (pour gagner en rapidité) et donc ne peut pas se permettre d'essayer de comprendre les désirs du programmeur => c'est au programmeur d'écrire correctement.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 56
    Par défaut
    Niquel bah merci "expr" exactement ce que je cherchais

  9. #9
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut
    y a aussi let qui est pratique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    a=1
    let a+=2
    echo $a
    --> 3

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/03/2007, 12h09
  2. Réponses: 3
    Dernier message: 01/03/2007, 16h26
  3. Tableau de chaînes de caractères
    Par sone47 dans le forum MATLAB
    Réponses: 2
    Dernier message: 27/02/2007, 14h54
  4. tableau de chaîne de caractères
    Par salseropom dans le forum C
    Réponses: 6
    Dernier message: 11/09/2006, 17h23
  5. Tableau de chaînes de caractères
    Par mac1 dans le forum Langage
    Réponses: 3
    Dernier message: 15/01/2006, 13h18

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