J'écris un script pour extraire quelques données utiles sur une série de simulations chimiques que j'ai exécutées.Pouvez-vous incorporer un script TCL dans un script Bash ou un script Python qui peut être appelé par des programmes externes?
Pour obtenir ces données j'ai besoin (1) d'un programme C qui calcule la densité à partir d'un type de fichier appelé *.pdb
. J'ai déjà (1). Et (2) j'ai besoin d'utiliser un programme appelé vmd
pour obtenir ce pdb. Pour accomplir (2) à partir de la ligne de commande, je peux soumettre un script tcl, car vmd
a une construction dans l'interpréteur tcl.
Ces fonctions - appelez le vmd pour exécuter le script tcl, puis exécutez le programme c compilé - seront les activités clés de mon script d'extraction de données wrapper.
Je voudrais éliminer le script TCL superflue, en réduisant mon compte de 2 scripts (script wrapper + script tcl pour vmd) à 1. Mais je ne suis pas sûr de savoir comment faire. Une solution potentielle semble être d'intégrer mon script TCL dans mon script wrapper, s'il y a un moyen de rendre un tel script incorporé pouvant être appelé par des programmes externes. La plupart de mes scripts de collecte de données jusqu'à présent ont été dans BASH, donc idéalement, je voudrais m'en tenir à un script BASH car je suis très familier avec les scripts bash par rapport à la connaissance initiale de Python/Perl.
Voici mes questions:
1.
Pouvez-vous intégrer un script TCL dans un script Bash?
Pouvez-vous rendre ce script appelable par un programme externe?
par exemple. en pseudocode:
#!/bin/bash
....
tclembed extract {
#tcl script
...
}
...
vmd -dispdev text -e extract.tcl >& extract_results.log #where vmd is
#an external program
3.
Si la réponse à # 2 est pas, vous pouvez le faire en Python, peut-être avec la bibliothèque Minotaure? Je considère le passage à python, le cas échéant ...
http://markmail.org/message/6kogjphzqtn4ilch
4.
Sinon, comment suggérez-vous d'essayer de fusionner ces deux scripts (une routine de tcl et un script bash qu'il appelle) en un seul fichier? 5.
Si quelqu'un a reçu des appels externes de cette nature pour travailler avec Minotaur, pouvez-vous poster un code explicatif?
J'ai pensé à une solution non-intégrée à # 4, qui serait d'écrire une fonction dans mon script Bash qui écrit un fichier avec le script tcl entier. De cette façon, je n'aurais qu'un seul script, mais je pourrais sauvegarder l'indice pour l'utiliser avec des programmes externes, puis le supprimer. J'ai le sentiment que cette solution est un peu kludgy bien que je sache avec certitude que cela fonctionne, par rapport aux solutions intégrées.
Tcl est inclus (bien que sous forme limitée) en Python. Voir http: //wiki.python.org/moin/Comment% 20Tkinter% 20can% 20exploit% 20Tcl/Tk% 20extensions –
N'est-ce pas seulement pour TCL one-liners? Tous les exemples que j'ai vus étaient des commandes simples. Je voudrais intégrer un script continu entier, par ex. en guillemets "" "" "". C'est ce que j'ai préparé était possible avec minotaure. –