Acabo de escribir un código de prueba de Python test.py
y lo estoy lanzando de la siguiente manera:
perl test.py
Después de un tiempo me di cuenta de mi error. Digo "después de un rato", porque el código de Python se ejecuta correctamente, ¡como en un intérprete de Python!
¿Por qué mi Perl está interpretando mi Python? test.py
Se ve como esto:
#!/usr/bin/python
...Python code here...
Curiosamente, si hago lo contrario (es decir, llamo python something.pl
), obtengo una gran cantidad de errores de sintaxis.
#!
al principio del archivo. De hecho, si elimino el she-bang, obtengo el comportamiento esperado. ¿No es una mala idea desde la perspectiva de la seguridad, de todos modos?Respuestas:
De perlrun ,
Por ejemplo,
$ cat a #!/bin/cat meow $ perl a #!/bin/cat meow
fuente
#! /usr/bin/env foo
.indir
era un programa diseñado para ejecutar indirectamente otros programas. Mi recuerdo es que se suponía que era particularmente útil en situaciones setuid donde el sistema operativo no proporcionaba de forma nativa te ayuda mucho, y / o quizás en situaciones en las que el kernel del SO te limita a líneas de comando de 32 caracteres ".