El #!
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 script de shell de Linux y Perl / python comienza 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:
- 70 Preguntas y respuestas de la entrevista de Shell Scripting