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

Modules Perl Discussion :

Problème compatibilité PERL SH CSH


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut Problème compatibilité PERL SH CSH
    Bonjour à tous !

    Je ne suis pas informaticienne et j'ai une belle énigme (du moins pour moi) à résoudre. J'espère que certains auront la clé !!!

    Voilà mon problème : Je dois à partir d'un fichier perl lancer un fichier shell . Ce fichier shell doit lancer une application qui a besoin de sourcer le .cshrc. Ceci signifie donc que mon fichier shell doit être du C shell (csh). Or Perl ne veut pas exécuter de fichier csh... mais uniquement des fichier sh, qui ne peuvent pas sourcer le .cshrc...

    Est-ce que quelqu'un a une idée ou une astuce pour me sortir de cet umbrogio, s'il vous plait ?

    Et s'il vous plait, pas de réponses du style fais-le en php, parce que pour pusieurs raisons trop longues à expliquer ici, je ne peux utiliser que perl...

    Merci beaucoup !!!!

  2. #2
    Expert confirmé
    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
    Par défaut Re: Problème compatibilité PERL SH CSH
    Citation Envoyé par minusette
    Et s'il vous plait, pas de réponses du style fais-le en php, parce que pour pusieurs raisons trop longues à expliquer ici, je ne peux utiliser que perl...
    Tu t'attends à ce qu'on te réponde ça sur le forum Perl ?! Perl est plus puissant que PHP en général, et bien plus adapté à l'admin système.

    Pour ton problème, il suffit d'appeler explicitement csh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("csh mon_script.sh blabla...");
    --
    Jedaï

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut
    Merci Jedaï... mais ça ne fonctionne pas !!!
    Je ne sais pas pourquoi, mais à chaque fois que je lance une commande system, il ne se passe rien...
    Pour lancer mon fichier sh, je suis "obligée" (du moins pour qu'il le fasse réellement) de passer par la commande open/close (avec la commande exec, il fait des choses mais affiche une page d'erreur... c'est pas terrible !).
    De plus dans la ligne de commande
    system("csh mon_script.sh blabla...");
    si j'ai bien compris on transforme du sh en csh, or c'est l'inverse qu'il me faudrait... et je sais pas si c'est possible... Je ne me trompe pas en disant que perl ne gère pas le csh ?

    Merci à tous !

  4. #4
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Citation Envoyé par minusette
    Je ne sais pas pourquoi, mais à chaque fois que je lance une commande system, il ne se passe rien...
    Vraiment ?
    Citation Envoyé par minusette
    Pour lancer mon fichier sh, je suis "obligée" (du moins pour qu'il le fasse réellement) de passer par la commande open/close (avec la commande exec, il fait des choses mais affiche une page d'erreur... c'est pas terrible !).
    Essaie de faire des petits tests :
    Crée un fichier csh.csh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/csh
     
    echo csh >> csh.txt
    Puis, fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -e "system ('/bin/csh ./csh.csh');"
    Si tu as, à la sortie, un fichier csh.txt qui contient csh (autant de fois que tu auras lancé la commande Perl), alors c'est que tu peux sans soucis exécuter des scripts csh.

    Citation Envoyé par minusette
    De plus dans la ligne de commande
    system("csh mon_script.sh blabla...");
    si j'ai bien compris on transforme du sh en csh, or c'est l'inverse qu'il me faudrait... et je sais pas si c'est possible...
    On ne transforme rien du tout ... on demande juste à csh d'interpréter un fichier qui s'appelle mon_script.sh. Ce fichier peut être un script sh, aussi bien que csh ... on ne peut le savoir qu'en en regardant le shebang (commentaire de la première ligne), ou en en étudiant la syntaxe.

    Citation Envoyé par minusette
    Je ne me trompe pas en disant que perl ne gère pas le csh ?
    Perl ne gère pas le csh Il ne gère que le perl

    C'est pour cela qu'on demande au système d'exécuter le csh pour nous, avec la commande "system".

    Bon courage pour la suite.

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut Bouh !!! Ca marche toujours pas !!!
    J'ai fais ce que tu m'as dit 2Eurocents
    Crée un fichier csh.csh Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/csh 
     
    echo csh >> csh.txt

    Puis, fais un Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -e "system ('/bin/csh ./csh.csh');"
    Et je confirme que ca ne crée pas de fichier .txt...

    Je crois bien que perl ne comprend pas : lire un fichier .csh....

    Désolée de vous embêter....
    D'autres idées ??????

    Merci !

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut La commande system()
    C'est pas que system() ne marche pas en fait...
    C'est que je demande à system() d'appeler du csh que perl ne comprend pas ...

    J'avoue que je suis à court d'imagination....

    Je ne vois pas comment contourner le problème...

  7. #7
    Expert confirmé
    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
    Par défaut
    Tu es bien sûr que csh est installé ? Si tu tapes "/bin/csh ./csh.csh" ça marche ? (Le problème ne provient absolument pas de Perl, qui comme on te l'a dit transmet juste au système la commande)

    --
    Jedaï

  8. #8
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut Merci à tous !!!!
    Bon, je crois que j'ai plus ou moins résolu mon problème !!!
    Merci à 2eurocents et à Jédaï.
    Pour info : OUI j'ai csh d'installé
    En fait c'est grace au petit script de 2eurocents que j'ai réussi à y voir plus clair : Je pense très clairement que j'ai des problèmes de droits ou de config que mon serveur apache, car quand je teste en direct ces commandes dans une fenête Unix, tout fonctionne !!!! Ca ne marche pas quand je passe par mon serveur. Ce n'est donc apparemment pas un problème de PERL !

    Merci à vous de m'avoir aidé et bonne continuation !

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

Discussions similaires

  1. Problème : incrémentation !! perl a fumé ?
    Par Ickou dans le forum Langage
    Réponses: 11
    Dernier message: 30/11/2005, 17h40
  2. problème avec perl Makefile.PL
    Par flores dans le forum Modules
    Réponses: 2
    Dernier message: 30/10/2005, 19h09
  3. Réponses: 3
    Dernier message: 26/09/2005, 15h20
  4. [HTML] Probléme compatibilité Mozilla
    Par hedgehog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/06/2005, 09h30
  5. problème compatibilité IE
    Par Shivaneth dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 03/05/2005, 18h39

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