Erstatte miljøvariabler ved hjelp av envsubst linux -kommandoen

Erstatte miljøvariabler ved hjelp av envsubst linux -kommandoen

Lagring av sensitive detaljer i en fil som ren tekst er risikabelt. I noen tilfeller der du trenger å holde verdiene til variabler, er det beste alternativet å erstatte dem fra konsollen. Hvis du skriver et automatiseringsskript eller andre filer som YAML, erstatter Envsubst enkeltvariablene. Vi får se hvordan du kan gjøre det i denne artikkelen.

Hvordan fungerer Envsubst?

Envsubst gjør arbeidet med å erstatte variablene. Den søker etter mønstre fra input, og når den finner en kamp, ​​erstatter den den med variabel verdi. Hvis mønsteret ikke gir noen tilsvarende samsvar, erstatter det det med en tom streng.

Dets grunnleggende syntaks er som følger:

1
$ envsubst [alternativ] [shell-format]

Erstatte variabler i en fil

Anta at du har en enkel tekstfil med variabler som bare trenger å settes når du bruker filen. Envsubst kan perfekt håndtere jobben.

La oss lage en prøve prøve.txt -fil og lage to variabler for Brukernavn og passord.

For å bruke Envsubst, må vi først eksportere verdiene for de to variablene:

1
2
3
$ eksport brukernavn = ”Kaila”
$ eksportpassord = ”Pasword”

Med eksportert variabler, kan du nå påkalle Envsubst -kommandoen:

1
$ Envsubst < sample.txt

Vår produksjon for denne saken vil være:

Du har brukt Envsubst for å erstatte de variable verdiene i en fil.

Du kan også Unset variablene ved å skrive Unset, etterfulgt av variabelnavnet. Hvis du kjører Envsubst igjen, vil den vise filen uten de tidligere angitte verdiene. Ta en titt på følgende:

Hvis du ikke vil at Envsubst skal vise utdata på arbeidsrommet, kan du kombinere den med mindre kommando.

1
$ Envsubst < sample.txt | less

Røring Envsubst Substitusjon til en annen fil

Det kan hende du også må pipe utdataene til en annen fil i stedet for å vise den på konsollen. La oss for eksempel opprette en konfigurasjonsfil som du kan legge ut på nettstedet ditt eller kjøre med en bot. I dette tilfellet kan du ikke legge til konfidensielle detaljer som klartekst. Løsningen er å bruke envsubst.

Lage en sampleconfig.Conf -fil og legg til teksten som i følgende bilde:

User_password =

1
$ nano sampleconfig.konf

Filen vår ser slik ut:

La oss eksportere variablene våre.

For å bruke envsubst mens du piperer utdataene til en ny fil, er kommandoen som følger:

1
$ Envsubst < sampleconfig.conf >utgang1.tekst

Hvis vi katter innholdet i utgang1.tekst, Vi ser at kommandoen fungerer for å erstatte variablene.

Spesifisere variablene som skal erstatte

Så langt har vi sett hvordan vi skal erstatte variablene som inneholder et dollarskilt. Det er mulig å angi to eller flere variabler og eksportere dem. Men vi kan bare erstatte de spesifikke.

La oss lage en lignende fil som vi hadde tidligere og legge til to variabler til den.

Fortsett med å eksportere variablene.

For å spesifisere hvilken variabel som skal erstatte, angir du navnet og sørg for å bruke de enkelt apostrofer for å forhindre erstatning før samtalen blir foretatt.

I vårt tilfelle erstatter vi Bruker1.

1
$ envsubst '$ user1' < sampleconfig.conf

Du kan også erstatte to variabler som vist i følgende:

1
$ envsubst '$ user1, $ brukernavn' < sampleconfig.conf

Du trenger bare å skille variablene med komma og bruke en enkelt apostrof for å omslutte de to variablene, som vist i følgende eksempel:

Konklusjon

Envsubst Linux -kommandoen er et flott verktøy for å erstatte variablene dine i filene. Det er nyttig når du trenger å maskere konfidensiell informasjon som passord og bare erstatte dem når det er nødvendig. Det gode med Envsubst er at du kan bruke den med forskjellige filtyper, pipe utdataene til en annen fil, eller til og med bruke den som en inngang for en annen kommando.

Vi har dekket Envsubst -kommandoen i denne guiden, og eksemplene hjelper deg med å visualisere og forstå bruken.