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 :

[Bash] différence syntaxiques


Sujet :

Linux

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut [Bash] différence syntaxiques
    salut tout le monde,

    je suis un nouveau Lunixien (je suis tombé amoureux "d'un DEBIAN"..) et maintenant je suis fier d'être
    un nouveau Shellien (j'ai opté pour Bash)...j'ai quelques questions d'ordre syntaxique:

    qu'elle est la différence entre:

    cette syntaxe: $(instruction) et celle-ci `ìnstruction`

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for n in $(find /  -iname "*ex")
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for n in `find /  -iname "*ex"`


    j'ai vu que parfois des codes-sources comportaient des "[" doubles

    exemple:

    quel diffrérence avec:




    dans cette instruction:
    j'ai essayer d'enlever une paire de ( , pour voir le comportement: rien ne marchait ..


    merci @ vous tous !!



    EDIT: pour la première question: la différence entre la syntaxe $(instruction) et `instruction`
    j'ai trouvé la réponse merci omécéLinux pour ta question et Sve@r pour ta réponse
    (on dirai qu'on lit dans mes pensées dans ce forum )

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    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 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par saw-next Voir le message
    salut tout le monde,

    je suis un nouveau Lunixien (je suis tombé amoureux "d'un DEBIAN"..) et maintenant je suis fier d'être
    un nouveau Shellien (j'ai opté pour Bash)...j'ai quelques questions d'ordre syntaxique:

    qu'elle est la différence entre:

    cette syntaxe: $(instruction) et celle-ci `ìnstruction`

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for n in $(find /  -iname "*ex")
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for n in `find /  -iname "*ex"`
    Aucune. La syntaxe $(commande) est une "nouvelle" façon d'écrire. Cette syntaxe est apparue avec le bash.
    D'une façon générale elle est plus parlante (on voit mieux $(...) que `...`) mais elle est surtout très pratique lorsqu'on veut imbriquer plusieurs niveaux de substitution.
    Exemple: effacer tous les fichiers nommés "*." contenant "main". Il faudra
    1) chercher tous les ".c"
    2) extraire ceux qui contiennent "main"
    3) les effacer

    Avec la syntaxe de base:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rm `grep -l \`find . -name "*.c" -print\``
    Avec cette nouvelle syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rm $(grep -l $(find . -name "*.c" -print))
    Un peu plus simple à écrire


    Citation Envoyé par saw-next Voir le message
    j'ai vu que parfois des codes-sources comportaient des "[" doubles
    exemple:

    quel diffrérence avec:

    Aucune idée. Je l'ai déjà vu aussi mais je ne m'y suis pas intéressé. Certainement à tord car si ça a été apporté, c'est que ça sert.

    Toutefois, concernant ton test $($cpt * 3) ton essai ne pouvait pas marcher car le shell a vu ici la syntaxe $(commande). Or "$cpt * 3" n'est pas une commande. En revanche ($cpt * 3) en est une (les parenthèses demandent le calcul numérique) et $(($cpt * 3)) devient donc de la substitution de commande.
    Citation Envoyé par saw-next Voir le message
    [B]EDIT: pour la première question: la différence entre la syntaxe $(instruction) et `instruction`
    j'ai trouvé la réponse merci omécéLinux pour ta question et Sve@r pour ta réponse
    No soucy

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    merci beaucoup de vos explication... j'ai compris maintenant

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    [[ .. ]] est un mot clé du shell, alors que [ .. ] est synonyme de "test" (qui est, suivant les shells, soit une commande externe, soit un built-in). [[ et test servent à peu près à la même chose (à faire des tests), mais ne supportent pas forcément les mêmes syntaxes.

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    merci beaucoup matafan et Sve@r pour vos explications, je sens que je suis dans ma famille ici

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

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  2. [Bash] différence entre "./script.sh" et ". ./script.sh"
    Par wodel dans le forum Administration système
    Réponses: 3
    Dernier message: 20/10/2010, 16h30
  3. Différences syntaxiques caml/Ocaml
    Par MaximeH dans le forum Caml
    Réponses: 4
    Dernier message: 17/09/2007, 09h44
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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