2012-01-25 9 views
5

Hay una pregunta similar sobre Windows, pero no funcionará para computadoras basadas en Unix (OS X específicamente).ejecutar perl en línea de comandos sin especificar perl en UNIX

Quiero escribir el nombre de un archivo, digamos example.pl o example.pl parametertext.txt, y que sepa ejecutar Perl.

Especifiqué #!/usr/bin/perl en el archivo para que pueda encontrar el ejecutable. En su lugar, me sale el mensaje:

bash: example.pl: command not found 
+5

¿No se supone que es '#!/Usr/bin/perl'? ¿Sin espacios (no estoy seguro si eso importa) y una ruta completa? Además, ¿su archivo .pl es ejecutable? (prueba con 'chmod + x ejemplo.pl'). Sin mencionar si '.' no está en tu' PATH', entonces necesitas ejecutar './Example.pl', en lugar de' example.pl'. –

+1

¿También configuró el archivo ejecutable? ¿Qué significa "no funciona", puede dar los mensajes de error? –

+0

@DanFego sí, creo que la autocorrección se superó pero olvidé el/ – Chris

Respuesta

11

Puede hacerlo de esta manera,

  1. encontrar el camino intérprete/ejecutores. En este caso es /usr/bin/perl o /usr/bin/env perl
  2. Agréguelo a la primera línea del archivo como #!/usr/bin/perl.
  3. Dale permisos de ejecución al archivo chmod +x example.pl

Ahora se ejecutará

$ ./example.pl 
2

Usted necesita para tomar la línea superior (el "tinglado") #!/usr/bin/perl (nota de la barra donde se tiene un espacio). Luego, primero debe asegurarse de que esa sea en realidad la ruta correcta a su ejecutable perl (escriba which perl para ver dónde está). Si está en otro lugar, corrija la ruta de forma adecuada. Luego debe asegurarse de que el script tenga el conjunto de permisos de ejecución. Escriba ls -l example.pl y busque x en la primera columna (cuarto carácter, en particular). Si no está allí, debe hacer que el script sea ejecutable con chmod a+x example.pl. Finalmente, para ejecutar el programa, necesita usar ./example.pl. El ./ le dice a su shell que desea el script en su directorio actual.

1

tengo dos pensamientos que añadir:

1) para utilizar example.pl test1.txt su trayectoria debe contener un punto echo $ RUTA /usr/bin:/usr/X11R6/bin:/usr/bin/X11 :.

2) El final de línea de su archivo debe ser unix, \ n. Al menos tu línea shebang contiene excatly tu ruta de perl, terminada con \ n.

Cuestiones relacionadas