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 :

[KSH] Récupération d'une commande dans une variable


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Par défaut [KSH] Récupération d'une commande dans une variable
    Bonjour

    Je souhaite mettre le résultat de la commande suivante : echo blabla | cut -c1-3 dans une variable. J'ai essayé :

    $test1 = $(echo blabla | cut -c1-3)
    et
    $test1 = `echo blabla | cut -c1-3`

    et à chaque fois j'obtiens l'erreur suivante :

    ./test.sh[13]: =: not found (la ligne 13 étant évidemment la ligne où je place le code ci-dessus)

    Je suis vraiment mauvais en programmation ksh et je ne comprend pas quel est le problème, quelqu'un saurait-il m'apporter un peu d'aide ?

  2. #2
    Membre éprouvé Avatar de exodev
    Inscrit en
    Septembre 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2009
    Messages : 201
    Par défaut
    test1=$(echo blabla | cut -c1-3)
    echo $test1
    Bien penser à "coller" les expressions au signe égal

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Par défaut
    Ah effectivement, merci ! (je déteste ksh rien que pour ce genre de trucs >_<)

    Mais du coup, j'ai mis ça :

    $test1=$(echo blabla | cut -c1-3)

    Et j'obtiens une erreur légèrement différente :

    ./test.sh[13]: =bla: not found

    Qu'est ce qui lui va pas cette fois ? ^_-

  4. #4
    Membre éprouvé Avatar de exodev
    Inscrit en
    Septembre 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2009
    Messages : 201
    Par défaut
    pas de $ devant une variable que tu affectes

    a=1
    bien

    $a=1
    bash: =1: command not found
    pas bien

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Par défaut
    Ah merci, ça marche effectivement mieux du coup comme ça

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    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 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Griffith Voir le message
    Ah effectivement, merci ! (je déteste ksh rien que pour ce genre de trucs >_<)
    Il n'y a pas de quoi détester ksh (ou sh ou bash) quand on connait les règles.

    Et les règles disent ceci: "le premier mot d'une ligne sera un appel à une commande (ou une fonction), et les autres mots seront ses arguments".

    Partant de là, quand on tape "cd /tmp", le premier mot "cd" est un appel à une fonction, et le second mot "/tmp" est son argument.

    Si toi tu écris "a = 1", tu cherches à dire au shell "exécute la commande 'a' avec les arguments '=' et '1'. Il te répondra "a: command not found (à moins que tu aies dans ton répertoire un exécutable nommé "a"). Tout reste logique et cohérent. Une affectation s'écrit sans espace de part et d'autres du signe "="...

    Maintenant, peut-être que t'aimerais que le shell puisse analyser plus finement ta syntaxe et qu'il comprenne de lui-même quand il s'agit d'un appel et quand il s'agit d'une affectation. Rhaa le bonheur. On tape "cd /tmp" et hop, il exécute ton déplacement. On tape "a = 1" et hop, il comprend qu'il s'agit d'une affectation.

    Oui... mais tout d'un coup j'ai envie d'afficher "=". Je tape donc "echo =". Et là, le shell croit qu'il s'agit d'une affectation et va me créer une variable "$echo". Hum, cela devient bien difficile à gérer. Il faut alors maintenant prévoir une syntaxe spéciale pour ce genre de cas (déjà que t'aimes pas avec les règles simples...). Sans compter que la création de l'analyseur magique (le code interne qui détecte si ton instruction correspond à un appel ou à une affectation) a bien complexifié le shell ce qui l'a en plus super ralenti (déjà qu'il n'est pas bien rapide...)

    Alors tu devrais réfléchir avant de dire "bwah je déteste ce langage qui m'oblige à être rigoureux" parce que s'il n'était pas comme ça, il serait encore pire...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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