Después de usar Linux durante un mes o dos, sé lo que estoy haciendo ahora.
Al crear programas, usando cualquier idioma, obviamente he estado usando un código como este:
$ python test.py
Y si quisiera test.py
leer un archivo dado, tendría que usar:
$ python test.py something.file
Lo que me gustaría hacer ahora es intentar crear una aplicación de línea de comandos para poder usar
$ myapp something.file
Un programa como el python
in $ python test.py
o el nano
in$ nano program.pl
¿Pero dónde diablos empiezo a construir aplicaciones como estas? Un poco de búsqueda en la web no me ha llevado a ningún lado.
Si puedes decirme eso sería genial, pero aceptaré fácilmente un montón de enlaces.
Estoy totalmente abierto si hay más de una forma, realmente no me importa qué idioma (¡una excusa para aprender otra!) O lo que sea.
command-line
application
ACarter
fuente
fuente
python
parte?python
.)Respuestas:
Puede ejecutar scripts de python haciéndolos ejecutables (
chmod +x test.py
) y creando#!/usr/bin/env python
la primera línea. Una vez que hagas eso, ejecutartest.py args
invocará a python para ejecutar tu script. Lea sobre shebang si desea obtener más información.fuente
$ test.py 30
dio un error de fiesta:-bash: test.py: command not found
. ¡Gracias por tu ayuda hasta ahora!$PATH
. Utilice una ruta, como/path/to/test.py
o./test.py
si/path/to
ya está, o agregue/path/to
a su$PATH
. Hay muchas preguntas duplicadas en este sitio sobre este último.$PATH
, omita las terminaciones de archivos como.py
.#!/usr/bin/env python
parte superior de su script antes de poder eliminar la extensión .py. Pero cualquier script que contenga esta invocación o alguna similar (por ejemplo,#!/bin/sh
para scripts de shell) se puede nombrar sin una extensión. No tiene nada que ver con si está en tu RUTA o no..EXE
y son.COM
importantes. Sin embargo, la razón detrás de la eliminación de la extensión es que los ejecutables genéricos deberían ser simplemente ejecutables genéricos. El significado de esta tautología es que los usuarios solo quieren la funcionalidad y no deberían necesitar saber o preocuparse si es Perl o Python o sh o bash o awk, etc., ese es un detalle de implementación mayormente irrelevante. Y, hacer que un script sea ejecutable y agregar un shebang lo convierte en un ejecutable genérico.En C, se ve así:
El argumento es el número de argumentos. Tenga en cuenta que el nombre del programa / herramienta cuenta.
Los argumentos mismos terminan en el vector de argumento (o matriz), argv.
Luego está la parte difícil de escribir código para tratar con ellos de la manera prevista.
Luego compila con gcc. Usted especifica el nombre del programa con la
-o
bandera (outfile). Ejecute el archivo desde su directorio actual de esta manera:./tool_name input_file_1 ... input_file_n
(o póngalo en un directorio que aparece cuando escribeecho $PATH
, luego puede invocarlo desde cualquier lugar, es decir, sin el punto).fuente
Yo uso Go. Es un lenguaje compilado, multiplataforma, con la facilidad de programación de un lenguaje dinámico y soporte para concurrencia y comunicación.
No voy a volver a Python ya que es muy divertido desarrollarlo con Go.
http://golang.org/
https://github.com/languages/Go
Aquí tiene un programa simple que obtiene los argumentos utilizados en ese comando:
http://play.golang.org/p/1dpUT11-cc
fuente