OS Args Golang

OS Args Golang
Se você já usou um utilitário de linha de comando, sabe que há uma coisa que todos têm em comum. Todos eles aceitam argumentos de linha de comando.

Os argumentos são uma das melhores maneiras de criar parâmetros para programas durante a execução. Por exemplo, quando você executa o comando go run, você também especifica o nome do arquivo que deseja compilar. Aqui, a corrida e o nome do arquivo são argumentos de linha de comando que dizem ao compilador o que.

Este guia irá orientá -lo na criação de argumentos para seus programas GO.

Pacote OS do Golang

Para usar argumentos de linha de comando em nosso programa, precisamos importar o pacote do sistema operacional. Este pacote contém sistema operacional.Variável args que mantém argumentos de linha de comando

Esta variável é uma variedade de cordas e mantém o controle dos argumentos passados ​​para o programa. Lembre -se de que o primeiro argumento é realmente o nome do programa.

Por exemplo:

Pacote principal
importação (
"FMT"
"OS"
)
funcmain ()
PG_NAME: = OS.Args [0]
fmt.Println (pg_name)

No exemplo acima, usamos o sistema operacional.Args Array para recuperar o primeiro argumento (índice 0). Como o primeiro argumento é o nome do programa baseado no compilador Go, a saída resultante é o caminho completo para o executável do programa.

$ go run Os_args.ir
C: \ Usuários \ CSalem \ AppData \ Local \ Temp \ Go-Build3770603401 \ B001 \ Exe \ Os_args.exe
Golang recebe número de argumentos

Golang recebe número de argumentos

Podemos realizar o número de argumentos para um programa usando a função len (). Desde o sistema operacional.Args é simplesmente uma matriz, a função len retornará o número de elementos na matriz.

Um programa de exemplo é como mostrado abaixo:

PackageMain
importação (
"FMT"
"OS"
)
funcmain ()
arg_len: = len (OS.Args [1:])
fmt.Println ("Comprimento do argumento:", arg_len)

Se executarmos o código acima com vários argumentos da linha de comando:

$ go run Os_args.vá primeiro, segundo, terceiro

Devemos realizar o número total de argumentos para o programa

Comprimento do argumento: 3

NOTA: Como sabemos que o primeiro argumento é o nome do programa, usamos o corte de matriz para remover o primeiro elemento e pegar todos os outros argumentos após o índice 0.

Sinalizadores de linha de comando de Golang

Podemos definir nossos próprios sinalizadores personalizados usando o pacote de sinalizadores. Um exemplo de uma bandeira de linha de comando seria -h, -l ou outro.

Por exemplo, o utilitário MySQL CMD permite especificar o nome de usuário e a senha usando o comando:

Mysql -u Root -p

Vamos implementar um programa simples que funcione como um prompt de login.

Pacote principal
importação (
"bandeira"
"FMT"
)
funcmain ()
VAR String de nome de usuário
string de senha var
bandeira.Stringvar (& UserName, "U", "Root", "Nome de usuário padrão: root")
bandeira.Stringvar (& senha, "P", "MySQL", "Senha padrão: MySQL")
Se o nome de usuário == "root" && senha == "mysql"
fmt.Println ("mysql>")
outro
fmt.Println ("Ocorreu um erro.")

O programa simples acima usa o sinalizador -u e -p para verificar se o nome de usuário e a senha fornecidos correspondem. Se correto, exibimos um prompt "mysql" e de outra forma, retorne uma mensagem.

Uma vez que construímos o programa:

Vá construir CMD_FLAG.ir

Podemos correr com os argumentos como

./cmd_flags.exe -u root -p mysql

Isso deve retornar a mensagem no bloco if como mostrado:

$ ./bandeiras.exe -u root -p mysql
Mysql

Caso contrário, o comando deve retornar a mensagem no bloco else.

Conclusão

Neste artigo, abordamos o básico do trabalho dos argumentos da linha de comando usando o pacote do sistema operacional. Também abordamos como usar sinalizadores da linha de comando do pacote Flags.

Obrigado pela leitura!!