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

Unix Discussion :

$@ en Programmation Shell


Sujet :

Unix

  1. #1
    Candidat au Club
    Homme Profil pro
    éléve ingénieur en informatique
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : éléve ingénieur en informatique

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 3
    Points
    3
    Par défaut $@ en Programmation Shell
    Je suis débutant en programmation shell Unix et je trouve le symbole $@ dans une correction d'un exercice et je sais pas ça correspond à quoi , si quelqu'un la connait me aider et merci

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    $@ contient les arguments passés à un script, sous forme d'un tableau.
    $* contient les arguments passés à un script, mais d'une seule traite.

    La différence ne s'affiche pas à l'écran, mais elle est utile dans certains cas.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #!/bin/ksh
     
    echo "ARGS : $@"
     
    echo "star ARGS : $*"
     
    echo "nb args : $#"
     
    exit 0
    Plus d'infos ici (en anglais).
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Pour clarifier:

    $@ et $*sont strictement équivalents lorsqu'ils sont utilisés tels quels, ils correspondent au contenu des arguments séparés par des espaces. Le problème est qu'il est impossible de distinguer un espace séparant deux arguments d'un espace contenu dans un argument.

    C'est quand ils sont utilisés entre guillemets ("$*" et "$@") que le résultat est différent.

    "$*" retourne une chaîne de caractères unique contenant tous les arguments séparés par des espaces. Par très utile donc.

    "$@" retourne une suite de chaîne de caractères contenant chacune un argument protégé par des guillemets, les espaces éventuellement contenus dans les arguments sont donc préservés.

    C'est dans ce type de boucle que "$@" est utile:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in "*@"; do echo $i;done
    comparé à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in $*; do echo $i; done
    ɹǝsn *sıɹɐlos*

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/05/2007, 16h19
  2. Programme shell pour rechercher un ensemble de lignes dans un fichier
    Par loukili81 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 23/11/2006, 13h27
  3. Programmation Shell avec Red Hat Calcul de moyenne
    Par jcpoulard dans le forum Linux
    Réponses: 3
    Dernier message: 22/02/2006, 22h08
  4. Pourquoi la programmation Shell ?
    Par am.adnane dans le forum Linux
    Réponses: 14
    Dernier message: 21/01/2006, 00h47
  5. Programmation Shell
    Par Leila75 dans le forum Linux
    Réponses: 3
    Dernier message: 12/05/2005, 09h45

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