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” |
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.