Lancement de shell depuis python
Bonjour,
J’ai un script* python qui génère puis exécute un script shell. Ce script shell doit absolument être sourcé. Pour ca j’utilse la commande*:
Code:
subprocess.call(["command",".",str(ShellFilePath)],shell=True)
ou ShellFilePath est le path de mon shell (en l’occurrence /tmp/chWS.sh). Il se trouve qu’à la fin de ce shell il y a un ‘cd’ vers un Path. Hors, quand j’exécute le script python, je n’ai pas changé de directory à la fin. Par contre, si je lance directement après le script*:
Code:
$>command . /tmp/chWS.sh
Tout se passe bien. J’ai instrumenté le script python en appelant ‘os.spawnlp(os.P_WAIT, 'pwd','pwd')’ avant et après subprocess.call, et la directory correspond toujours à celle d’où est lancé le script python. Pour info j’ai également essayé les syntaxes suivante*:
Code:
1 2 3 4
| cmdToExec='command . '+str(ShellFilePath)
os.system(cmdToExec) //KO
os.spawnlp(os.P_WAIT,cmdToExec,cmdToExec) //KO
subprocess.Popen(str(cmdToExec),0,None,None,None,subprocess.STDOUT,None,False,True,None,None,False,None,0) //KO |
J’ai l’impression que tout se passe comme si mon shell était exécuté dans un terminal autre que celui d’où est lancé mon script python.
Quelqu'un peut-il me dépanner?
D'avance merci.