Python & shell linux
BenDL
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Skami_18 -
Skami_18 -
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 :(
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 :(
A voir également:
- Python & shell linux
- Classic shell - Télécharger - Personnalisation
- Citizen code python avis - Accueil - Outils
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
- Backtrack linux - Télécharger - Sécurité
2 réponses
Salut,
mais une fois fini le shell revient à son emplacement initial.
regarde ça :-))
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
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 ?
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 ?