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 :

Assigner une variable


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut Assigner une variable
    Bonjour,
    Quel est la différence entre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    l=`echo $[ ${#fichier} - 1]`
    Et:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    l=$[ ${#fichier} - 1]
    Lequel est mieux? Pourquoi?

    D'avance merci.

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l=`echo $[ ${#fichier} - 1]`
    n'a aucun intérêt, echo te permet d'afficher du texte sur la console et, là, tu récupères ce que tu affiches pour l'attribuer à la variable.
    `` est déprécié, il faut utiliser $().


    Attribue directement la valeur à la variable.
    Pour info, ce n'est pas le cas ici, mais si tu veux utiliser des variables, pas besoin de les mettre entre ${} quand ils sont entre $[]
    La 2eme est donc la plus logique.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    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 102
    Par défaut
    Citation Envoyé par hizoka Voir le message
    `` est déprécié, il faut utiliser $().
    Oui!

    l=`echo $[ ${#fichier} - 1]` n'a aucun intérêt, echo te permet d'afficher du texte sur la console et, là, tu récupères ce que tu affiches pour l'attribuer à la variable.
    Attention, toutefois, à ce petit détail: echo fait un léger traitement de ses arguments.

    Dans d'autres situations que l'Évaluation arithmétique, le traitement des espaces, tabulations et autres returns peut avoir son importance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ A="a   b"
    $ echo "$A" # toujours mettre entre guillemets le développement des variables
    a   b
    $ echo $A # si on n'en met pas, le format n'est pas respecté
    a b
    $ B=$A
    $ echo "$B"
    a   b
    $ B=$(echo $A)
    $ echo "$B"
    a b

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    En effet, je n'y avais pas pensé

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    Pour que les grands débutants qui se demandent, il y a bien 4 notations différentes.

    1. ` ` (2 backticks AltGr + touche 7 du clavier azerty)
    2. $( )
    3. $[ ]
    4. $(( ))

    Les première et la deuxième accueillent une commande.
    Les troisième et quatrième font une évaluation arithmétique.
    1 et 3 sont surannées au profit de 2 et 4.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ polo=7
    $ echo $[$polo+1]
    8
    $ echo $($polo+1)
    -bash: 7+1 : commande introuvable
     
    $ echo $(echo marco)
    marco
    $ echo $[echo marco]
    -bash: echo marco : erreur de syntaxe dans l'expression (le symbole erroné est «*marco*»)
    $

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

Discussions similaires

  1. impossible d'assigner une variable
    Par topazz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/06/2009, 00h37
  2. Fonction pour assigner une variable à php
    Par Hightuxdotnet dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 13/08/2008, 00h50
  3. [Free Pascal] [2.2] Impossible d'assigner une variable de type T à une variable de type T
    Par Hibou57 dans le forum Free Pascal
    Réponses: 3
    Dernier message: 12/10/2007, 12h31
  4. Réponses: 13
    Dernier message: 30/05/2006, 16h00
  5. Réponses: 2
    Dernier message: 13/03/2006, 11h47

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