2009-04-01 10 views

Respuesta

24

En UNIX y Linux esto indica qué binario para su uso como un intérprete (véase también Wiki page). Por ejemplo, el script de shell se interpreta por /bin/sh.

#!/bin/sh 

Ahora con pitón Es un poco complicado, porque no se puede suponer que está instalado el binario, ni que quiera usar. Por lo tanto, el truco /usr/bin/env. Se usa el binario de python que sea el primero en el $PATH. Puede verificar que ejecutando which python

Con la línea del intérprete, puede ejecutar el guión modificándolo a ejecutable. Y solo ejecutarlo. Así, con la escritura comienza con

#!/usr/bin/env python 

estos dos métodos son equivalentes:

$ python script.py 

y (suponiendo que antes se ha hecho chmod +x script.py)

$ ./script.py 

Esto es útil para creando scripts de todo el sistema.

cp yourCmd.py /usr/local/bin/yourCmd 
chmod a+rx /usr/local/bin/yourCmd 

Y luego se llama a él desde cualquier lugar simplemente con

yourCmd 
5

En UNIX y sistemas operativos similares, esta línea indica qué intérprete se utilizará si se ejecuta el archivo.

+0

-1: Olvidé el material de referencia: http://en.wikipedia.org/wiki/Shebang_(Unix) –

+0

para no confundir con http://en.wikipedia.org/wiki/She_Bangs –

+0

Pete .. . Usted acaba de hacer mi día. –

14

Esto se llama una línea shebang: "! #"

En informática, un tinglado (también llamado Hashbang, hashpling o explosión libra) se refiere a los caracteres cuando son los dos primeros caracteres en un archivo de texto. Los sistemas operativos tipo Unix toman la presencia de estos dos caracteres como una indicación de que el archivo es un script, y tratan de ejecutar ese script usando el intérprete especificado por el resto de la primera línea del archivo. Por ejemplo, los guiones de shell para el shell Bourne comienzan con la primera línea:

+0

Por ejemplo, los guiones de shell para el shell Bourne comienzan con la primera línea: link | ofensivo? – Dan

+0

... '#!/Bin/bash'. –

3

'/ usr/bin/env python' busca $ PATH para python y lo ejecuta.

Por lo general env se utiliza para establecer algunas variables de entorno para un programa

Lo esa línea hace es decirle a la computadora qué hacer con ese archivo, si lo único que intenta ejecutar el archivo sin especificar un intérprete .. more detail

5

Como dijo Andri.En Windows, el ejecutable para ejecutar un archivo con al ejecutarlo desde la línea de comandos se basa en una asociación:

16:12:40.68 C:\>assoc .py 
.py=Python.File 

16:13:53.45 C:\>assoc Python.File 
Python.File=Python File 

16:14:01.70 C:\>ftype Python.File 
Python.File="C:\Python30\python.exe" "%1" %* 

En Unix, el intérprete shell hace la inferencia abriendo el archivo y ver si hay un comando denominado en el archivo.

+0

Siempre es útil para esos días que trabajo en una caja de windoze. –

2

Solo una nota, esta línea no es más que un comentario para el intérprete en Windows.

+3

tampoco es más que un comentario para el intérprete en Unix – hop

Cuestiones relacionadas