Changer le shell dans le script Perl

Je cherche une belle façon de faire les choses suivantes:

J’ai donc un script que je dois exécuter en Python sous Unix en appelant à partir d’un script Perl appelé à son tour depuis ma macro Excel VBA sous Windows en utilisant Plink. Le script Python, dû à des problèmes de dépendance, doit s’exécuter dans csh ou bash, et je devrai utiliser export / setenv pour append quelques bibliothèques avant d’exécuter le script. Cependant, par défaut, perl s’exécute en sh shell et, en tant que tel, je ne peux pas append toutes les dépendances et exécuter le script Python.

Donc, je me demande s’il existe EITHER: 1. un moyen pour moi d’append des dépendances à sh shell dans le script perl, OU 2. de forcer mon script perl à s’exécuter dans csh (préféré, car pour une raison quelconque .bashrc pour le script perl). compte se heurte à des problèmes de permission).

Merci beaucoup!

Que diriez-vous “3. Définissez la variable d’environnement appropriée dans les scripts Perl ou Python”?

$ENV{'PATH'} = ... 

 os.environ['PATH'] = os.pathsep.join(newpaths + os.environ['PATH'].split(os.pathsep)) 

(ne sais pas comment obtenir le séparateur de chemin en Perl, sorz)

Pour forcer le shell à csh , essayez ce qui suit dans Perl:

 `/bin/csh -c "command_name"`; 

Modifier :

Vous pouvez utiliser la variable ENV, comme ceci. Essayez cela:

 $s = `/bin/bash -c 'VAR_FOO=753; echo \$VAR_FOO'`; print $s; 

J’ai fini par changer le script .cshrc, apparemment, l’ajout de PATH, pour une raison quelconque, n’a pas fonctionné pour moi. Après cela, tout se passe bien en mettant tout en une ligne

Donc, fondamentalement, il ressemble à quelque chose comme ça

 /path/to/.cshrc && /python/path/to/python 

J’espère que cela pourra aider!