2017-03-02 3 views
0

je dois écrire un scirpt en python (ou bash) qui:Comment écrire un script en python qui peut ouvrir un nouveau terminal linux et faire la source automatiquement

  • ouvrir un nouveau terminal linux avec quelques onglets
  • faire une commande 'myfile.csh source' sur chaque onglet

J'ai essayé quelque chose comme ceci:

os.system("gnome-terminal --tab --working-directory=/repo/ -e 'source myfile.csh' ") 

mais cela n'a pas fonctionné (par exemple le fichier n'a pas été trouvé même si j'étais dans un répertoire correct ou impossible d'ouvrir un fichier .csh bla bla bla)

J'ai aussi essayé quelques autres options, mais Je n'ai pas trouvé une bonne âme pour mon problème.

Je ne sais pas pourquoi je ne peux pas faire un simple « ouvrir un nouveau terminal, écrire une commande et l'exécuter »

est peut-être une solution simple il sans installer de nouveaux logiciels (je ne avoir une racine)?

+0

Un message d'erreur lors de la commande affichée? – languitar

+0

cette commande fonctionne-t-elle lorsque vous collez dans un terminal? –

+0

"Une erreur s'est produite lors de la création du processus enfant pour ce terminal Echec de l'exécution du processus fils" source "(aucun fichier ou répertoire de ce type)" @languitar – Legut

Répondre

2

-e exécutera un processus. Cependant source est une instruction de votre shell. Ce que vous devez faire est d'appeler votre shell avec -e et passer des arguments au shell afin d'exécuter l'instruction source. Devrait être quelque chose comme

os.system("gnome-terminal --tab --working-directory=/repo/ -e 'tcsh -c \"source myfile.csh\"'") 
+0

Mon terminal se ferme immédiatement après l'exécution d'un script. Y at-il une commande pour le maintenir? J'ai besoin de travailler dedans. – Legut

+0

ajouter '; dormez 1000' à la commande passée à tcsh. – languitar

+0

"Erreur: le script de source doit, ne peut pas simplement exécuter ..." – Legut