Ejecutar un comando "exclusivo" de tcsh desde python.

Arnau Sanchez pyarnau en gmail.com
Jue Ene 24 16:47:20 CET 2008


Ruth Santana escribió:

> import os;
> a = os.system("source kk");
> 
> El fichero kk:
> 
> #!/usr/bin/tcsh
> setenv a hola
> 
> El problema que tengo es que al ejecutar los comandos indicados en python,
> 'setenv' no es un comando reconocido. Investigando por la web he conseguido
> adivinar que os.system utiliza sh o bash y no tcsh... pero no tengo opción a
> cambiar el shell script en el que se debe ejecutar 'kk'.

¿/usr/bin/tcsh? no sé qué distro usas, pero las shells son ejecutables 
básicos y normalmente están en /bin, no en /usr/bin.

No tiene sentido usar "source" con os.system, nada lo que hagas ahí 
dentro afectará al script python (son procesos diferentes), e imagino 
que es lo que intentas con source. ¿O es que simplemente quieres 
ejecutar el script?

En cualquier caso, para ejecutarlo con tcsh, como ya te han dicho, esto 
debería funcionar:

os.system("tcsh script")

Es verdad que os.system() llamará primero a /bin/sh, pero luego "script" 
se ejecutará bajo tcsh. Después, el script puede tener el sharp-bang que 
quiera, pero si explícitamente lo ejecutas con un programa, eso es lo 
que manda.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es