OS Args Golang

OS Args Golang
Si alguna vez ha usado una utilidad de línea de comandos, sabe que hay una cosa que todos tienen en común. Todos aceptan argumentos de línea de comandos.

Los argumentos son una de las mejores formas de crear parámetros para los programas durante la ejecución. Por ejemplo, cuando ejecuta el comando Go Run, también especifica el nombre del archivo que desea compilar. Aquí, la ejecución y el nombre del archivo son argumentos de línea de comandos que le dicen al compilador GO qué hacer.

Esta guía lo guiará a través de la creación de argumentos para sus programas Go.

Paquete de OS de Golang

Para usar los argumentos de línea de comandos en nuestro programa, necesitamos importar el paquete del sistema operativo. Este paquete contiene OS.Variable args que contiene argumentos de línea de comandos

Esta variable es una variedad de cadenas y realiza un seguimiento de los argumentos pasados ​​al programa. Tenga en cuenta que el primer argumento es en realidad el nombre del programa.

Por ejemplo:

paquete principal
importar (
"FMT"
"OS"
)
funcmain ()
PG_NAME: = OS.Args [0]
fmt.Println (pg_name)

En el ejemplo anterior, usamos el sistema operativo.Array de argumentos para recuperar el primer argumento (índice 0). Dado que el primer argumento es el nombre del programa basado en el compilador GO, la salida resultante es la ruta completa al ejecutable del programa.

$ Go Run OS_ARGS.ir
C: \ Users \ csalem \ appData \ local \ temp \ go-build3770603401 \ b001 \ exe \ os_args.exe
Golang obtiene el número de argumentos

Golang obtiene el número de argumentos

Podemos pasar el número de argumentos a un programa utilizando la función Len (). Desde el sistema operativo.Args es simplemente una matriz, la función LEN devolverá el número de elementos en la matriz.

Un programa de ejemplo es como se muestra a continuación:

empacador
importar (
"FMT"
"OS"
)
funcmain ()
arg_len: = len (OS.Args [1:])
fmt.Println ("Longitud del argumento:", arg_len)

Si ejecutamos el código anterior con una serie de argumentos de línea de comandos:

$ Go Run OS_ARGS.Ve primero, segundo, tercero

Deberíamos obtener el número total de argumentos al programa

Longitud del argumento: 3

Nota: Dado que sabemos que el primer argumento es el nombre del programa, usamos la cortación de matriz para eliminar el primer elemento y tomar todos los demás argumentos después del índice 0.

Banderas de línea de comandos de Golang

Podemos definir nuestras propias banderas personalizadas usando el paquete de banderas. Un ejemplo de un indicador de línea de comandos sería -h, -l u otro.

Por ejemplo, MySQL CMD Utility le permite especificar el nombre de usuario y la contraseña utilizando el comando:

mysql -u raíz -p

Implementemos un programa simple que funcione como un mensaje de inicio de sesión.

paquete principal
importar (
"bandera"
"FMT"
)
funcmain ()
cadena de nombre de usuario var
cadena de contraseña de VAB
bandera.StringVar (y nombre de usuario, "u", "root", "nombre de usuario predeterminado: root")
bandera.Stringvar (y contraseña, "p", "mysql", "contraseña predeterminada: mysql")
if username == "root" && contraseña == "mysql"
fmt.Println ("mysql>")
demás
fmt.Println ("Un error ocurrido.")

El programa simple anterior utiliza el indicador -u y -p para verificar si el nombre de usuario y la contraseña proporcionados coinciden. Si es correcto, mostramos un mensaje "mysql" y de lo contrario, devuelve un mensaje.

Una vez que construimos el programa:

ir a construir cmd_flag.ir

Podemos ejecutar con los argumentos como

./cmd_flags.exe -u root -p mysql

Esto debería devolver el mensaje en el bloque if como se muestra:

ps ./banderas.exe -u root -p mysql
Mysql

De lo contrario, el comando debe devolver el mensaje en el bloque de lose.

Conclusión

En este artículo, cubrimos los conceptos básicos de trabajar los argumentos de la línea de comandos utilizando el paquete del sistema operativo. También cubrimos cómo usar banderas de línea de comandos del paquete de banderas.

Gracias por leer!!