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

Langage Perl Discussion :

executer une commande non perl avec perl


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut executer une commande non perl avec perl
    bonjour
    est ce qu'il est possible d'executer une commande non perl avev perl?

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Bienvenue sur le forum.
    Bien sûr il est tout à fait possible de lancer n'importe quel exécutable à partir de Perl ! (tous les langages savent le faire, ce serait bien le diable si un langage renommé pour ses capacités en tant que "glue" en était incapable)
    Regarde cette section de notre FAQ.

    --
    Jedaï

  3. #3
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    ne marche pas lorsque j'execute de la meme maniere les commandes du logiciel SimVision
    merci

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Pour que l'on puisse éventuellement t'apporter une solution, un extrait de ton code serait le bienvenu (n'oublie pas les balises codes)

  5. #5
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    pour simuler un code vhdl sur la console du SimVision j'ecris selemment:
    ncsim e:/work/fichier.vhd
    mais comment je peut faire a partir de la console de Perl sans utiliser la console du SimVision.
    j'ai deja fais avec la methode sur Perl:
    system "ncsim e:/work/fichier.vhd"
    exec "ncsim e:/work/fichier.vhd"
    mais ne marche pas

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Lorsque tu tapes ncsim e:/work/fichier.vhd dans une fenêtre MS-DOS, ça fonctionne ?

    Ah, d'ailleurs, via console DOS, ce devrait être plutôt : ncsim e:\work\fichier.vhd si je ne m'abuse ? (à essayer aussi dans ta syntaxe system de ton script Perl)

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system "ncsim e:/work/fichier.vhd"
    => s'execute sur la console dos.
    Est ce que ça pose probleme, peux tu faire cette commande sous dos?
    si non cherche comment faire sous dos avant de l'integrer dans perl

  8. #8
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Citation Envoyé par Arioch
    Lorsque tu tapes ncsim e:/work/fichier.vhd dans une fenêtre MS-DOS, ça fonctionne ?

    Ah, d'ailleurs, via console DOS, ce devrait être plutôt : ncsim e:\work\fichier.vhd si je ne m'abuse ? (à essayer aussi dans ta syntaxe system de ton script Perl)
    tu m'as doublé arioch , par contre tu te trompes souvent en proposant les \ dans les chemins. Perl s'en occupe pour nous, donc c'est mieux de laisser / à la unix

  9. #9
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    quand je tape la commande: system "ncsim e:/work/bascule.vhd"
    sur la console d'unix, il ne marche pas, ni sur la console de perl

  10. #10
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    T'es sous windows ou unix?
    et tape sur la console dos ou unix ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ncsim e:/work/bascule.vhd
    si ça marche pas, c normal que perl ne marche pas non plus.
    A toi de voir comment faire fonctionner ta commande en ligne de commande.

  11. #11
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    ce commande:ncsim e:/work/bascule.vhd
    il marche sur unix mais je veux taper sur la console de Perl.

  12. #12
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    T'es sous windows ou unix? et faire voir ton code

  13. #13
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Citation Envoyé par djibril
    tu m'as doublé arioch , par contre tu te trompes souvent en proposant les \ dans les chemins. Perl s'en occupe pour nous, donc c'est mieux de laisser / à la unix
    Ben là, j'ai mis \ à la place de / juste pour la console MS-DOS. Windows est assez capricieux en temps normal alors...

  14. #14
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par kolombo
    quand je tape la commande: system "ncsim e:/work/bascule.vhd"
    sur la console d'unix, il ne marche pas, ni sur la console de perl
    puis :

    Citation Envoyé par kolombo
    ce commande:ncsim e:/work/bascule.vhd
    il marche sur unix mais je veux taper sur la console de Perl.
    ??

    La console de Perl ? Ca n'existe pas (je parie que tu ne parles pas non plus de l'un des shells écrit en Perl) !

    Je vais te résumer ce que j'ai vu dans ma boule de cristal (parce qu'avec les éléments que tu nous as donné, c'est de la divination, et je ne garantis pas les résultats) : Tu as une application qui ouvre une ligne de commande où tu peux taper des commandes comme 'ncsim', mais ces commandes ne sont pas accessibles par la ligne de commande Unix (sous quel Unix es-tu donc d'ailleurs pour avoir des chemins comme "e:\work\bascule.vhd" ? Un Unix nommé Windows ? ) normale.
    Il y a donc deux possibilités : soit cette application modifie le PATH (c'est à dire l'ensemble des répertoires où le shell va chercher les exécutables), soit elle gère sa ligne de commande elle-même.
    Dans le premier cas, il suffit de modifier le PATH de la même façon que cette application avant d'utiliser system(), dans le second cas, il est probable que cette application offre la possibilité d'exécuter un script contenant ses commandes, et dans ce cas il suffit de passer par ce biais.

    Et kolombo, pourrais-tu écrire dans un français correct, et surtout moins laconique :
    Citation Envoyé par kolombo
    ne marche pas lorsque j'execute de la meme maniere les commandes du logiciel SimVision
    merci
    n'apporte pas beaucoup de renseignements (et ne donne pas envie de répondre).

    --
    Jedaï

  15. #15
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    pour modifier un fichier a partir de console unix je tape:
    perl -i -p -e '$_ = "le remplacement de ma ligne\n" if $. == 23' fichier.txt
    le logiciel matlab a aussi me permit de modifier le fichier car il connait Perl et je tape sur matlab:
    unix('perl -i -p -e '$_ = "le remplacement de ma ligne\n" if $. == 23' fichier.txt')
    et puisque je veux simuler un code vhdl avec SimVision je tape sur unix:
    ncsim e:/work/bascule.vhd
    mais le probleme lorsque je veux simuler ce code par matlab et je tape:
    unix(' ncsim e:/work/bascule.vhd')
    il me repond: ncvhdl command not found
    c pourquoi je pose la question: est que perl me permit de lancer des commandes non perl?

  16. #16
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    pour modifier un fichier a partir de console unix je tape:
    perl -i -p -e '$_ = "le remplacement de ma ligne\n" if $. == 23' fichier.txt
    le logiciel matlab a aussi me permit de modifier le fichier car il connait Perl et je tape sur matlab:
    unix('perl -i -p -e '$_ = "le remplacement de ma ligne\n" if $. == 23' fichier.txt')
    et puisque je veux simuler un code vhdl avec SimVision je tape sur unix:
    ncsim e:/work/bascule.vhd
    mais le probleme lorsque je veux simuler ce code par matlab et je tape:
    unix(' ncsim e:/work/bascule.vhd')
    il me repond: ncvhdl command not found
    c pourquoi je pose la question: est que perl me permit de lancer des commandes non perl de la meme facon que j'ai modifie le fichier?

  17. #17
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    J'ai du mal à te suivre et surtout te comprendre, ça a l'air d'un casse tête ton truc

    Citation Envoyé par kolombo
    pour modifier un fichier a partir de console unix je tape:
    perl -i -p -e '$_ = "le remplacement de ma ligne\n" if $. == 23' fichier.txt
    Déjà ici, qu'appelle-tu console unix ? Est-ce un shell (bash ? kornshell ? autre ?) que tu utilises en ouvrant une console à l'écran ou sont-ce des commandes unix que tu emploies à travers une console de ton logiciel ???

    Citation Envoyé par kolombo
    le logiciel matlab a aussi me permit de modifier le fichier car il connait Perl et je tape sur matlab:
    unix('perl -i -p -e '$_ = "le remplacement de ma ligne\n" if $. == 23' fichier.txt')
    Bon, à priori, spa directement sous unix que tu tapes tes commandes unix, tu passes donc via matlab ?

    Citation Envoyé par kolombo
    le logiciel matlab a aussi me permit de modifier le fichier car il connait Perl et je tape sur matlab:
    unix('perl -i -p -e '$_ = "le remplacement de ma ligne\n" if $. == 23' fichier.txt')
    et puisque je veux simuler un code vhdl avec SimVision je tape sur unix:
    ncsim e:/work/bascule.vhd
    mais le probleme lorsque je veux simuler ce code par matlab et je tape:
    unix(' ncsim e:/work/bascule.vhd')
    il me repond: ncvhdl command not found
    c pourquoi je pose la question: est que perl me permit de lancer des commandes non perl de la meme facon que j'ai modifie le fichier?
    Si je capte bien tout comme y faut :

    - la simulation de ton code vhdl avec SimVision fonctionne bien.
    - la même simulation en passant par Matlab à la place de SimVision ne fonctionne pas. Ici, Matlab fait appel à une commande/fonction appelée unix ???
    - qu'est-ce que ce ncvhdl ? un alias de ncsim ???

    Dur à capter, c'est bien ce que je disais

  18. #18
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    ncvhdl est une commande pour compiler le code vhdl et ncsim est une commande pour simuler le code.
    ma question: est ce que perl permit la communication entre deux logiciels?
    c-a-d:au lieu de taper les commandes de simulation de code vhdl sur la console de SimVision,je les tape sur la console de matlab.

    les commandes de simulation de code vhdl marche bien sur la console de SimVision ou sur Unix.

Discussions similaires

  1. Linux executer une commande avec php
    Par xunil2003 dans le forum Langage
    Réponses: 6
    Dernier message: 14/04/2012, 10h05
  2. executer une procedure stocké Oracle dans Perl
    Par makohsarah dans le forum SGBD
    Réponses: 2
    Dernier message: 29/04/2009, 18h15
  3. Executer une commande avec sudo a partir de java
    Par barabas123 dans le forum Langage
    Réponses: 16
    Dernier message: 05/01/2007, 16h47
  4. [API][Système] Executer une commande dos avec arguments
    Par oOoOuuhmAn dans le forum Général Java
    Réponses: 4
    Dernier message: 17/03/2006, 12h37
  5. Exécuter une commande avec ssh
    Par GLDavid dans le forum Réseau
    Réponses: 3
    Dernier message: 18/01/2006, 17h04

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