Rechercher : dans
Par :

Python & shell linux

Dernière réponse le 17 fév 2007 à 23:42:54 BenDL, le 17 fév 2007 à 16:11:09 
 Signaler ce message aux modérateurs

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 :(

Configuration: Windows XP
Ubuntu
Suse

Firefox 2.0.0.1

Meilleures réponses pour « python & shell linux » dans :
Guide d'utilisation du Shell pour débutant VoirSHELL BASH - GUIDE D'UTILISATION - Niveau Débutant Introduction Appel aux membres CCM II. C'est quoi le shell ? III. Comment accéder à la ligne de commande IV. Les consoles virtuelles Exemple : Accéder à la console 3 depuis l'interface...
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
[Linux] Utiliser la commande 'su' VoirPréambule Se connecter sous un autre ID utilisateur avec "su" Démarrer un nouveau shell de connexion avec "su -" Revenir au shell précédent Suspendre le shell du compte root Notes Préambule La commande "su" (Switch User, appelée plus...
Télécharger CDBF Shell VoirCertains fichiers de votre ordinateur sont dans un format appelé DBF. Ce sont généralement des bases de données issues de DBase. Il y a par exemple les fichiers liés à Outlook Express qui sont dans ce format. CDBF Shell est une application vous...
Linux - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire le système...
Linux - L'installation de logiciels VoirLes différents types d'archives Basiquement il existe plusieurs façons de récupérer une application fonctionnant sous Linux : Sous forme de paquetage RPM. Il s'agit d'un fichier portant l'extension .rpm permettant une installation automatique,...
Commandes Linux VoirTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau...

1

lami20j, le 17 fév 2007 à 17:29:24

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
lami20j

Répondre à lami20j

2

 BenDL, le 17 fév 2007 à 23:42:54

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 ?

Répondre à BenDL