¿Por dónde empezar a crear aplicaciones CLI?

¿Por dónde empezar a crear aplicaciones CLI?

Después de usar Linux durante uno o dos meses, ahora sé lo que estoy haciendo.

Al crear programas, usando cualquier lenguaje, obviamente he estado usando código como este:

$ python test.py

Entonces, si quisiera test.pyleer un archivo determinado, 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 pythonin $ python test.pyo el nanoin$ nano program.pl

Pero, ¿por dónde empiezo a crear aplicaciones como éstas?Un poco de búsqueda en la web no me ha llevado a ninguna parte.

Si usted mismo puede decírmelo, sería genial, pero aceptaré fácilmente un montón de enlaces.

Estoy totalmente abierto si hay más de una manera, realmente no me importa en qué idioma (¡una excusa para aprender otro!) o lo que sea.

Respuesta1

Puede ejecutar scripts de Python haciéndolos ejecutables ( chmod +x test.py) y creando #!/usr/bin/env pythonla primera línea. Una vez que hagas eso, la ejecución test.py argsinvocará a Python para ejecutar tu script. Leer acerca deel asuntoEs si quieres aprender más.

Respuesta2

En C, se ve así:

int main(int argc, char *argv[]) {

El argc es el número de argumentos. Tenga en cuenta que el nombre del programa/herramienta cuenta.

Los argumentos mismos terminan en el vector (o matriz) de argumentos, argv.

Luego está la parte complicada de escribir código para tratarlos de la forma prevista.

Luego compila con gcc. Usted especifica el nombre del programa con el -oindicador (archivo de salida). Ejecute el archivo desde su directorio actual de esta manera: ./tool_name input_file_1 ... input_file_n(o colóquelo en un directorio que aparezca cuando escriba echo $PATH, luego podrá invocarlo desde cualquier lugar, es decir, sin el punto).

Respuesta3

Yo uso ir. Es un lenguaje compilado, multiplataforma, con la facilidad de programación de un lenguaje dinámico y soporte para concurrencia y comunicación.

No volveré a Python ya que es muy divertido desarrollar con Go.

http://golang.org/
https://github.com/languages/Go

Aquí tienes un programa sencillo que obtiene los argumentos utilizados en ese comando:

package main

import (
  "fmt"
  "flag"
)

func main() {
  fmt.Println("Arguments: ", flag.Args())
}

http://play.golang.org/p/1dpUT11-cc

información relacionada