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