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 :

Mettre le résultat d'une commande dans une variable


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut Mettre le résultat d'une commande dans une variable
    Bonjour,

    J'ai une commande qui ajoute ou laisse un "/" à la fin d'un chemin et je voudrais mettre son résultat dans une variable mais j'obtiens une erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    > m="user/exemple/"
    > rep="rep"
    > resultat=echo $m | sed "s/\/$//g" | awk -v rep="/"$r '{print $1rep}'
    -bash: user/exemple/: No such file or directory

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

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



    La variable resultat est affectée de la valeur "echo" le temps de l'exécution de la commande.
    La commande est le contenu de $m, soit user/exemple/.
    Et quand il cherche le fichier exécutable user/exemple/, il ne le trouve pas et renvoie un message d'erreur.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    Bonjour,

    comment je peux faire alors ? ^^

    Quand je fais juste la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "user/exemple/" | sed "s/\/$//g" | awk -v rep="/"$r '{print $1re p}'
    j'obtiens un résultat, et quand j'essaye de le mettre dans une variable ca ne marche plus

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Substitution de commande.

    La base.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    je ne veux pas substitué, je veux juste stocker le résultat ^^

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 657
    Par défaut
    RTFM!

    de toute façon, ta commande est totalement inutile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ rep=autreRep
    $ dir=user/exemple/
    $ echo "${dir/%\/}/$rep"
    cf. man bash /Remplacement de variables, ici
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    bonjour,
    ok merci de vos aide.

  8. #8
    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 pitchu Voir le message
    J'ai une commande qui ajoute ou laisse un "/" à la fin d'un chemin et je voudrais mettre son résultat dans une variable mais j'obtiens une erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    > m="user/exemple/"
    > rep="rep"
    > resultat=echo $m | sed "s/\/$//g" | awk -v rep="/"$r '{print $1rep}'
    -bash: user/exemple/: No such file or directory
    La substitution de commande est le procédé qui permet de mettre le résultat dans une variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat=$(echo "$m" | sed "s/\/$//g" | awk -v rep="/"$r '{print $1rep}')

  9. #9
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 657
    Par défaut
    mouais :/
    La substitution de commande permet de remplacer le nom d'une commande par son résultat.
    cf. man bash

    et puis sed | awk
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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

Discussions similaires

  1. bash: comment mettre le résultat d'une commande dans une variable
    Par helpcomm dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 03/10/2012, 23h26
  2. Mettre le résultat d'une commande dans un fichier
    Par eleana dans le forum SQLite
    Réponses: 7
    Dernier message: 04/06/2009, 14h48
  3. Réponses: 2
    Dernier message: 02/04/2009, 12h29
  4. Mettre le résultat d'une commande dans une variable
    Par daviddu54 dans le forum Scripts/Batch
    Réponses: 12
    Dernier message: 18/09/2008, 23h58
  5. Réponses: 4
    Dernier message: 14/09/2005, 17h23

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