viernes, 6 de mayo de 2011

Diferencia entre ejecutar un script usando intérprete o no

¿Qué es un Script? Según Wikipedia, es un programa usualmente simple, que por lo regular se almacena en un archivo de texto plano. Los script son casi siempre interpretados, pero no todo programa interpretado es considerado un script. El uso habitual de los scripts es realizar diversas tareas como combinar componentes, interactuar con el sistema operativo o con el usuario. Por este uso es frecuente que los shells sean a la vez intérpretes de este tipo de programas.
Según yo, es un pequeño (normalmente) código de programación en lenguajes como bash, batch, perl… Los scripts son un conjunto de instrucciones generalmente almacenadas en un archivo de texto que deben ser interpretados línea a línea en tiempo real para su ejecución, se distinguen de los programas, pues deben ser convertidos a un archivo binario ejecutable para correrlos.

Ejecutarlo mediante un intérprete

¿Cómo se ejecuta mediante un intérprete?

Pongamonos en el caso de los scripts en bash, sería así:

$ sh script.sh

Si esta escrito en perl, sería así:

$ perl script.pl

Esto lo que hace es decirle al sistema, que utilice ese intérprete para interpretar (valga la redundancia) el script sin necesidad de permisos.

Ejecutarlo por si solo

Si ejecutas un script en bash en sí mismo, sería así:

$ ./script.sh

O en perl por ejemplo:

$ ./script.pl

Esto lo que hace es buscar la primera línea de código donde se indica cual es el intérprete, en bash es esta:

#!/bin/bash

A esto se le llama “bang line”. Se trata de la primera línea de un script, que debe comenzar con los caracteres #! y que debe especificar la ruta en la que se encuentra el intérprete. Además el archivo debe tener permisos de ejecución.

¿Y la diferencia es..?

Pues claramente la diferencia esta en que si lo ejecutas por si solo es completamente imprescindible que el script contenga una bang line al comienzo de este, sino dará error. En cambio si lo ejecutas especificando el intérprete, adiós problemas.

Conclusión

Como conclusión lo mejor es utilizar siempre un intérprete para ejecutar scripts, pero si lo ejecutas por si solo no tendrás problemas normalmente, pues todo el mundo que programa scripts conoce las bang line y las utiliza, por lo tanto, escoge la manera que te resulte más cómoda y satisfactoria.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.