En este post te mostraré a leer banderas, flags o argumentos de la línea de comandos usando el lenguaje de programación Go también conocido como Golang.

Cuando usamos programas podemos pasarles ciertas opciones, banderas o argumentos para su funcionamiento. Por ejemplo:

enviar_correo --destinatario=ejemplo@ejemplo.com --asunto=Hola

Te enseñaré a hacer eso pero con Go usando flag.

Leyendo argumentos de la línea de comandos con Go

Para leer opciones que se pueden pasar al programa podemos usar a flag. En este caso voy a usar flag.String que leerá un argumento como cadena, aunque también existe flag.Bool, flag.Int, etcétera.

Esta función devolverá un apuntador a cadena y después podemos hacer la conversión. Los argumentos al llamarla son, en orden: nombre de la bandera, valor por defecto y descripción.

Ejemplo

Aquí un ejemplo simple que lee el puerto en donde el servidor escuchará:

Nota: una vez que hayas definido tus banderas, invoca a flag.Parse.

Así que el modo de invocar a este programa una vez compilado sería (suponiendo que es leer.exe):

leer.exe --puerto=:8181

Aquí tienes algunas pruebas:

Leer argumentos de línea de comandos con Go y flag

Leer argumentos de línea de comandos con Go y flag

Si te fijas, debemos indicar el valor por defecto en caso de que el usuario no lo proporcione. Además, la descripción sirve para cuando el usuario indica una opción errónea (digamos que es la ayuda):

Bandera no interpretada con Go y flag

Bandera no interpretada con Go y flag

Así es como terminamos este post. También existe otra manera en donde simplemente leemos los argumentos como un arreglo, pero eso lo dejo para otro artículo, ya que me parece que esta opción es más elegante.

Si Go te gusta puedes aprender más por aquí.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 3,136 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

2 Comentarios

Jose · julio 15, 2021 a las 9:37 pm

Podrias hacer un ejemplo igual con php como recoger lo que devuelva el programa por linea de comandos en variables de php?

    parzibyte · julio 16, 2021 a las 10:16 am

    Lo tendré en cuenta.
    Saludos!

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: