Posez votre question Signaler

Python & shell linux

BenDL 4Messages postés 14 février 2007Date d'inscription - Dernière réponse le 6 avril 2010 à 17:35
Bonjour tout le monde,
j'ai un probleme à priori tres simple:
j'écris un script qui fait simplement un changement de repertoire courant.
soit par une commande systeme soit par une commande python chdir
puis j'ouvre un shell et execute mon fichier python de la maniere suivante:
/monPath/monFichier.py
en ayant mis évidemment en premiere ligne #!/usr/bin/python pour le rendre executable
là je m'attend a me retrouver dans le repertoire défini dans mon script, et en fait pas du tout, rien ne se passe.
apres avoir un peu cherché je me rend compte que tout se passe bien le temps de l'execution du script (il va bien dans le directory) mais une fois fini le shell revient à son emplacement initial.
quelqu'un aurait une idée svp ??
ça a l'air super simple mais on avec deux amis on bloque totalement :(
Lire la suite 

Python & shell linux »

3 réponses
Réponse
+0
moins plus
Salut,
mais une fois fini le shell revient à son emplacement initial.

regarde ça :-))
lami20j@debian:~$ chmod -v 0755 change.sh
Le mode d'accès de `change.sh' qui a été conservé est: 0755 (rwxr-xr-x).
lami20j@debian:~$ cat change.sh
#!/bin/bash

echo répertoire courant avant la commande cd : $PWD
cd /home/lami20j/trash
echo répertoire courant après la commande cd : $PWD
lami20j@debian:~$ pwd
/home/lami20j
lami20j@debian:~$ ./change.sh
répertoire courant avant la commande cd : /home/lami20j
répertoire courant après la commande cd : /home/lami20j/trash
lami20j@debian:~$ pwd
/home/lami20j
lami20j@debian:~$ source change.sh
répertoire courant avant la commande cd : /home/lami20j
répertoire courant après la commande cd : /home/lami20j/trash
lami20j@debian:~/trash$ pwd
/home/lami20j/trash
Ajouter un commentaire
Réponse
+0
moins plus
Salut et merci pour ta réponse.

Mais tout mon probleme est bien là... je m'explique:

La solution python m'interesse car le script doit pouvoir effectuer tout un ensemble d'operations autre qu'un simple 'cd /xxx/xxx'. Le comportement du script s'adapte en fonction du type de repertoire dans lequel l'utilisateur veut aller.

N'y arrivant pas je me suis tourné rapidement vers du bash ou tcsh.
Mais le paradoxe est que meme avec un script bash il faut necessairement sourcer le script manuellement pour qu'il fonctionne. Si je l'execute via une procedure python cela donne le meme resultat qu'en python pure.
la seule solution est de taper réellement "source totot.sh"
l'équivalent en python serait os.system('source totot.sh')
mais là ça ne marche pas.

aurais tu une idée ?
Skami_18 - 6 avril 2010 à 17:35
Non, l'équivalent de "source" en Python est "import".
Ajouter un commentaire
Ce document intitulé « python & shell linux » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Windows 8 - À quoi s'attendre ?