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 :

Que signifier $0 et $@


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Que signifier $0 et $@
    salut;
    j'ai essayer de faire une liaison entre deux programme un en c et lautre en tcl/tk,j'ai trouver sur le net un exemple qui utilise cette expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     exec nom_fonction $o ${1+$@}
    avec mon exemple ca marche mais lorsque j'utilise ca dans mon programme il me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    can't read "0": no such variable
    svp si quelqu'un peut me donner la signification de ces deux variable $0 et $@

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 23
    Points : 26
    Points
    26
    Par défaut
    Ca ne serait pas plutôt la lettre o par hasard ?

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut merci pour la reponce
    salut;
    non c pas la lettre o,il s'agit peut etre d'un fichier ou des argument de la ligne de commande je ne sais pas,
    pour $0 c'est le repertoire /bin/bash sous mandrak 9.0
    mais pour $@ j'ai pas encour trouver quelque chose

  4. #4
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    bien le bonjour,

    si je ne dis pas de bêtise, $0, $1, $2 .... correspondent aux arguments de la ligne de commande. $0, étant le nom du script appelé (avec chemin complet)
    $# correspond au nombre d'arguments
    $@ contient la liste des arguments.

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut merci
    salut,
    oui c'est exactement ca tous le monde est unis sur cette reponce,mon probleme peut etre est dans la declaration des argument ou quelque chose comme ca,
    merci pour vos reponce;

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    Conernant la signification des variables, khayyam90 a déjà tout dit.

    Par contre, quand je regarde votre code, plusieurs détails syntaxiques m'étonnent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec nom_fonction $o ${1+$@}
    Primo, vous semblez bien mettre dans votre ligne un "o" minuscule ce qui ne correspond à aucune variable prédéfinie par le shell (contrairement à $0). L'erreur ne viendrait-elle pas de là (simple faute de frappe) ?

    Secundo, vous mettez comme deuxième argument "${1+$@}", ce qui va pousser le shell à chercher un variable dont le nom est "1+$@" (les accolades servant en shell à délimiter explictement les noms de variables), ce qui est une construction pour le moins... étonnante. En effet, $1 est un sous ensemble de $@. La variable $@ ne suffirait-elle pas ?
    KR
    ==

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut bon remarque
    salut;
    cet une bonne remarque le code juste c:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec nom_executable $0 ${1+"$@"}
    vous avez une aidee;

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

Discussions similaires

  1. que signifie "raw_" devant une fonction?
    Par raoulmania dans le forum MFC
    Réponses: 2
    Dernier message: 10/10/2005, 11h12
  2. Que signifie "Error : Data truncation" ??
    Par BouB dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/05/2005, 16h20
  3. [SQL6]Que signifie ce LEFT ?
    Par guy2004 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/01/2005, 19h18
  4. Que signifie Pagesize ?
    Par anthony70 dans le forum Débuter
    Réponses: 3
    Dernier message: 31/08/2004, 13h31

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