Przechowywanie wrażliwych szczegółów w pliku, ponieważ zwykły tekst jest ryzykowny. W niektórych przypadkach, w których musisz przechowywać wartości zmiennych, najlepszą opcją jest wymiana ich z konsoli. Jeśli piszesz skrypt automatyzacji lub inne pliki, takie jak YAML, EnvSubst łatwo zastępuje zmienne. Zobaczymy, jak możesz to zrobić w tym artykule.
Jak działa EnvSubst?
EnvSubst wykonuje pracę polegającą na wymianie zmiennych. Szuka wzorów z wejścia, a gdy znajdzie dopasowanie, zastępuje go wartością zmienną. Jeśli wzór nie przynosi odpowiedniego dopasowania, zastępuje go pustym sznurkiem.
Jego podstawowa składnia jest następująca:
1 | $ envsubst [opcja] [Shell-Format] |
Zastąpienie zmiennych w pliku
Załóżmy, że masz prosty plik tekstowy ze zmiennymi, które należy ustawić tylko podczas korzystania z pliku, EnvSubst może doskonale obsłużyć zadanie.
Utwórzmy próbka próbki.plik txt i stwórz dwie zmienne dla Nazwa użytkownika i hasło.
Aby użyć EnvSubst, najpierw musimy wyeksportować wartości dla dwóch zmiennych:
1 2 3 | $ Export Username = ”Kaila” |
Z eksportowanymi zmiennymi możesz teraz wywołać polecenie EnvSubst:
1 | $ envsubst < sample.txt |
Nasze wyjście w tej sprawie będzie:
Z powodzeniem użyłeś EnvSubst do zastąpienia wartości zmiennych w pliku.
Również możesz nieoprawny zmienne przez pisanie nieoprawny, a następnie nazwa zmiennej. Jeśli ponownie uruchomisz EnvSubst, wyświetli plik bez wcześniej ustawionych wartości. Spójrz na następujące:
Jeśli nie chcesz, aby EnvSubst wyświetlił wyjście na przestrzeni roboczej, możesz połączyć je z mniej Komenda.
1 | $ envsubst < sample.txt | less |
Podstawienie envingStus do innego pliku
Może być również konieczne wbijanie wyjścia do innego pliku zamiast wyświetlania go na konsoli. Na przykład utwórzmy plik konfiguracyjny, który możesz opublikować w witrynie lub uruchomić z botem. W takim przypadku nie można dodać poufnych szczegółów jako zwykłego tekstu. Rozwiązaniem jest użycie EnvSubst.
Stwórz SampleConfig.plik CONF i dodaj tekst jak na poniższym obrazie:
User_password =
1 | $ nano SampleConfig.conf |
Nasz plik wygląda tak:
Wyeksportujmy nasze zmienne.
Teraz, aby użyć EnvSubst podczas przewracania wyjścia do nowego pliku, polecenie jest następujące:
1 | $ envsubst < sampleconfig.conf >wyjście1.tekst |
Jeśli pokonujemy zawartość wyjście1.tekst, Widzimy, że polecenie działa na wymianie zmiennych.
Określanie zmiennych do wymiany
Do tej pory widzieliśmy, jak wymienić zmienne zawierające znak dolara. Możliwe jest ustawienie dwóch lub więcej zmiennych i wyeksportować je. Ale możemy wymienić tylko określone.
Utwórzmy podobny plik, jak wcześniej i dodajmy do niego dwie kolejne zmienne.
Kontynuuj eksport zmiennych.
Aby określić, którą zmienną wymienić, ustaw swoją nazwę i upewnij się, że użyj pojedynczych apostrofów, aby zapobiec jej zastąpieniu przed wykonaniem połączenia.
W naszym przypadku zastępujemy Użytkownik 1.
1 | $ envsubst „$ user1” < sampleconfig.conf |
Możesz także wymienić dwie zmienne, jak pokazano następująco:
1 | $ envsubst '$ user1, $ nazwa użytkownika' ' < sampleconfig.conf |
Musisz tylko oddzielić zmienne przecinkiem i użyć pojedynczego apostrofu do zamknięcia dwóch zmiennych, jak pokazano w poniższym przykładzie:
Wniosek
Polecenie EnvSubst Linux to świetne narzędzie do wymiany zmiennych w plikach. Jest to pomocne, gdy musisz maskować informacje poufne, takie jak hasła i zastąpić je tylko w razie potrzeby. Zaletą EnvSubst jest to, że możesz go używać z różnymi typami plików, przewrócić jego wyjście do innego pliku, a nawet użyć go jako wejścia dla innego polecenia.
W tym przewodniku omówiliśmy polecenie EnvSubst, a przykłady pomagają z łatwością wizualizować i zrozumieć jego użycie.