Substituindo variáveis ​​ambientais usando o comando EnvSubst Linux

Substituindo variáveis ​​ambientais usando o comando EnvSubst Linux

Armazenar detalhes confidenciais em um arquivo como texto simples é arriscado. Em alguns casos em que você precisa manter os valores das variáveis, sua melhor opção é substituí -las do console. Se você estiver escrevendo um script de automação ou outros arquivos como a YAML, o EnvSubst substitui as variáveis ​​facilmente. Veremos como você pode fazer isso neste artigo.

Como funciona o EnvSubst?

O Envsubst faz o trabalho de substituir as variáveis. Ele procura padrões de entrada e, quando encontra uma correspondência, substitui -o pelo valor variável. Se o padrão não produzir nenhuma correspondência correspondente, ele o substitui por uma corda vazia.

Sua sintaxe básica é a seguinte:

1
$ Envsubst [Opção] [formato de shell]

Substituindo variáveis ​​em um arquivo

Suponha que você tenha um arquivo de texto simples com variáveis ​​que só precisam ser definidas ao usar o arquivo, o EnvSubst pode lidar perfeitamente com o trabalho.

Vamos criar um amostra de amostra.arquivo txt e criar duas variáveis ​​para o Usuário e senha.

Para usar o EnvSubst, primeiro precisamos exportar os valores para as duas variáveis:

1
2
3
$ exportar nome de usuário = "kaila"
$ export senha = "pasdford"

Com as variáveis ​​exportadas, agora você pode invocar o comando EnvSubst:

1
$ Envsubst < sample.txt

Nossa saída para este caso será:

Você usou com sucesso o EnvSubst para substituir os valores variáveis ​​em um arquivo.

Além disso, você pode desmembrado as variáveis ​​digitando desmembrado, seguido pelo nome da variável. Se você executar o EnvSubst novamente, ele exibirá o arquivo sem os valores definidos anteriormente. Dê uma olhada no seguinte:

Se você não deseja que o EnvSubst exiba a saída no espaço de trabalho, você pode combiná -lo com o menos comando.

1
$ Envsubst < sample.txt | less

Substituição EnvSubst de tubulação por outro arquivo

Você também pode precisar colocar a saída em outro arquivo em vez de exibi -lo no console. Por exemplo, vamos criar um arquivo de configuração que você pode postar no seu site ou executar com um bot. Nesse caso, você não pode adicionar detalhes confidenciais como texto simples. A solução é usar Envsubst.

Criar uma sampleConfig.arquivo conf e adicione o texto como na imagem a seguir:

User_password =

1
$ nano sampleConfig.conf

Nosso arquivo se parece com o seguinte:

Vamos exportar nossas variáveis.

Agora, para usar o EnvSubst enquanto tubular a saída para um novo arquivo, o comando é o seguinte:

1
$ Envsubst < sampleconfig.conf >saída1.TXT

Se catarmos o conteúdo do saída1.TXT, Vemos que o comando funciona na substituição das variáveis.

Especificando as variáveis ​​para substituir

Até agora, vimos como substituir as variáveis ​​contendo um sinal de dólar. É possível definir duas ou mais variáveis ​​e exportá -las. Mas só podemos substituir os específicos.

Vamos criar um arquivo semelhante ao anterior e adicionar mais duas variáveis ​​a ele.

Prossiga para exportar as variáveis.

Para especificar qual variável substituir, defina seu nome e certifique -se de usar os apóstrofos únicos para impedir sua substituição antes que a chamada seja feita.

No nosso caso, substituímos o Usuário1.

1
$ Envsubst '$ user1' < sampleconfig.conf

Você também pode substituir duas variáveis, como mostrado no seguinte:

1
$ Envsubst '$ user1, $ nome de usuário' < sampleconfig.conf

Você só precisa separar as variáveis ​​com uma vírgula e usar um único apóstrofo para incluir as duas variáveis, como mostrado no exemplo a seguir:

Conclusão

O comando EnvSubst Linux é uma ótima ferramenta para substituir suas variáveis ​​nos arquivos. É útil quando você precisa mascarar informações confidenciais, como senhas e apenas substituí -las quando necessário. A coisa boa com o EnvSubst é que você pode usá -lo com diferentes tipos de arquivos, colocar sua saída para outro arquivo ou até usá -lo como uma entrada para outro comando.

Cobrimos o comando EnvSubst neste guia, e os exemplos ajudam você a visualizar e entender seu uso com facilidade.