Nos sistemas Linux, exemplos de variáveis de ambiente incluem a localização dos programas executáveis no sistema de arquivos, no shell do usuário, na PWD, no diretório doméstico para um usuário específico, MOTD e muito mais.
GO, uma linguagem de programação moderna e vasta fornece o pacote do sistema operacional para interagir com variáveis de ambiente.
Abordaremos os fundamentos do trabalho com variáveis de ambiente no idioma Go ao longo deste tutorial.
Getenv
O primeiro método que vamos cobrir é o método getenv. Este método permite recuperar os valores de uma variável de ambiente. A função leva o nome da variável de ambiente como parâmetro e retorna seu valor associado.
Se a variável de ambiente especificada não existir no sistema, a função retornará um valor vazio. Isso pode ser um pouco confuso se a variável de ambiente existir, mas não for definida.
A sintaxe da função é como mostrado:
OS.Getenv (chave)
Considere o exemplo abaixo:
Pacote principal
importação (
"FMT"
"OS"
)
func main ()
fmt.Println ("Home:", OS.Getenv ("home"))
O exemplo recuperará o valor do diretório doméstico para o usuário. Um exemplo de saída é como mostrado:
$ go run getenv.ir
Home: C: \ Usuários \ csalem // Windows
Home: /Home /Debian // Debian
Lookupenv
Como mencionado, a função getenv retorna um valor vazio se a variável de ambiente não existir. No entanto, a função também retornará um valor vazio se a variável de ambiente não estiver definida.
Para resolver isso, podemos usar a função lookupeNv (). A função recuperará o valor da variável de ambiente se existir e retornar um verdadeiro booleano. Se a variável de ambiente não existir, a função retornará um valor vazio e um false booleano.
Considere o exemplo abaixo:
Func Lookup (Key String)
_, encontrado: = OS.Lookupenv (chave)
se achado
fmt.Println ("variável ambientmet encontrada")
outro
fmt.Println ("Variável do ambiente não encontrada")
O exemplo mantém uma função que toma a variável de ambiente como o parâmetro. Em seguida, usamos o valor da chave para verificar se ela existe usando uma instrução IF.
Se executarmos o código acima com dois parâmetros como mostrado:
Lookup ("Home")
Lookup ("não_there")
A saída resultante:
$ go run getenv.ir
Variável de ambiente encontrado
Variável do ambiente não encontrado
SETENV
E se quisermos definir um valor para uma variável de ambiente específica? Nesse cenário, podemos usar a função setEnv (). A função leva a chave (nome da variável do ambiente) e seu valor associado como parâmetros.
O exemplo abaixo define o valor do shell do usuário:
func set_shell ()
fmt.Println ("Antes:", OS.Getenv ("shell"))
OS.Setenv ("shell", "/bin/zsh")
fmt.Println ("After:", OS.Getenv ("shell"))
O exemplo acima define o valor da variável de ambiente do shell para "/bin/zsh". Um exemplo de saída é como:
Antes: /bin /bash
Depois: /bin /zsh
UnsEtenv
Também podemos desencadear uma variável de ambiente usando o método unsetEnv (). Um exemplo é como mostrado:
func unset_env ()
fmt.Println ("Home:", OS.Getenv ("home"))
OS.UnsEtenv ("Home")
fmt.Println ("Home:", OS.Getenv ("home"))
O exemplo acima despertará o valor da variável Env Home.
Saída:
$ go run getenv.ir
Home: C: \ Usuários \ csalem // Windows
Lar:
Environ
O método Environ () permite listar todas as variáveis de ambiente em um sistema. A função retorna o resultado na forma de pares de valor-chave.
Um exemplo é mostrado abaixo:
func list_env ()
Para _, Env: = Range OS.Environ ()
par: = strings.Splitn (Env, "=", 2)
fmt.Printf (" %s: %s \ n", par [0], par [1])
O exemplo acima usa o método Environ () para listar todas as variáveis de ambiente no sistema. Em seguida, usamos o método Splitn para dividir as cordas em pares de valores-chave.
Clearenv ()
Se você deseja excluir todas as variáveis de ambiente em seu sistema, você pode usar o método clearenv ().
Cuidado ao usar este método, pois ele redefinirá todo o INV no sistema.
Para usá -lo, considere o trecho abaixo:
OS.Clearenv ()
Expandenv
O Expandenv () permite que você substitua o $ var pelo valor real de uma variável de ambiente dentro de uma string. Esta é uma função muito útil ao trabalhar com Env.
Por exemplo:
func substituir_env ()
fmt.Println (OS.Expandenv ("Nome de usuário: $ nome de usuário."))
A função expandirá a variável de ambiente "nome de usuário" e substituirá seu valor dentro da string. O resultado é como:
Nome de usuário: CSALEM.
Conclusão
Este guia explorou a base de trabalhar com variáveis de ambiente na linguagem de programação GO usando o pacote OS.