¿Cuál es la función de Shebang en Linux?
los #!
los personajes forman un número mágico. Incrustamos estos números mágicos en cualquier script en los sistemas operativos UNIX / Linux para decirle al kernel qué intérprete ejecutar, para leer nuestro script. Como intérpretes de shell de Linux, Python, Perl y R. Es posible que haya notado que todo el shell de Linux y el script Perl / python comienzan con la siguiente línea:
#!/bin/bash
O
#!/usr/bin/env python
O
#!/usr/bin/env perl
O
#!/usr/bin/env Rscript
Ahora escribiremos un archivo de programa para el lenguaje Python. podemos ejecutar este programa llamando al intérprete directamente sin agregar la línea shebang como se muestra a continuación.
python_script
import sys def greeting(name): sys.stdout.write("Hello" + name + "n") name = "Omar" greeting(name)
Para ejecutar el código, mencionaremos python
antes del nombre del archivo.
python python_script.py
Output Hello Omar
También escribiremos un archivo de programa para lenguaje R. podemos ejecutar este programa llamando al intérprete directamente sin agregar la línea shebang como se muestra a continuación.
r_script
print("hello world")
Para ejecutar el código, mencionaremos Rscript
antes del nombre del archivo.
Rscript r_script.R
Output "hello world"
Cómo hacer un archivo ejecutable
para hacer un archivo ejecutable debemos agregar la línea shebang #!/usr/bin/python
a la parte superior del script y cambiando el modo del archivo para que sea ejecutable.
python_script
#!/usr/bin/python import sys def greeting(name): sys.stdout.write("Hello" + name + "n") name = "Omar" greeting(name)
Para que el archivo sea ejecutable, escriba el siguiente comando.
chmod +x python_script.py
Ahora podemos simplemente ejecutar el archivo y Python lo interpretará.
./python_script.py
Output Hello Omar
Gran grupo de computadoras
El camino /usr/bin/python
probablemente funcionará para la mayoría de los sistemas predeterminados, pero es posible que no funcione en cosas como un gran grupo de computadoras. Entonces usaremos el programa env
para obtener el interperter correcto.
#!/usr/bin/env python import sys def greeting(name): sys.stdout.write("Hello" + name + "n") name = "Omar" greeting(name)
También podemos hacer lo mismo con cualquier programa como Rscript.
#!/usr/bin/env Rscript print("hello world")
Leer también: