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 :

Shell : Récupérer un argument de script sans l'évaluer


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 103
    Par défaut Shell : Récupérer un argument de script sans l'évaluer
    Bonjour,

    Cela fait une heure que je me pose le problème suivant : dans un script, comment récupérer une chaîne de caractères passée en argument au script sans l'évaluer ?

    Illustration :

    script.ksh :

    Ligne de commandes appelant script.ksh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ls -t 
    src1.c
    src2.c
    script.ksh
    $ script.ksh *.c
    Je voudrais obtenir en sortie : *.c et non src1.c src2.c.

    Comment faire ? Merci pour votre aide.

    Jimmy91

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Ton évaluation se fait déjà à deux endroits:

    Lors de l'appel de ton script, bash va étendre *.c en src1.c et src2.c et va passer script.ksh src1.c src2.c à ton script. Du coup tu dois mettre ton *.c entre guillemets ou échapper le caractère * lors de l'appel du script.

    Ensuite, une fois que bash envoie correctement *.c au script, tu re-expand le tout dans le echo, et pour éviter ça ben on met des " autour de la variable ce qui donne un truc du genre echo "$ARG"

  3. #3
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 103
    Par défaut
    Merci supersnail ! C'est très utile et très clair.

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

Discussions similaires

  1. [shell] exécuter script sans les droits de lecture
    Par tiresias54 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 21/11/2012, 20h24
  2. Réponses: 0
    Dernier message: 04/10/2011, 17h34
  3. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  4. Récupérer des variables en script shell
    Par vaderetro33 dans le forum C
    Réponses: 4
    Dernier message: 22/09/2009, 10h44
  5. Récupérer :les arguments d'un script
    Par sliderman dans le forum Linux
    Réponses: 2
    Dernier message: 06/04/2008, 17h56

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