如何使用 envsubst 命令替換環境變量

在使用腳本時,大多數用戶都會使用環境變量,但有時他們會使用具有風險成本的變量。

所以如果要替換環境變量,可以使用envsubst命令。

在 Linux 中使用 envsubst 命令替換環境變量

envsubst 命令用於獲取環境變量的替代品,顧名思義就是如此。

但它不會改變你的變量目錄。 首先,它將尋找變量模式(例如$VARIABLEo[$VARIABLE]).

然後它將用指定的 bash 變量替換找到的變量。

?envsubst 命令只能識別導出的變量。

要使用 envsubst 替換環境變量,您需要遵循給定的命令結構:

envsubst [OPTION] [SHELL-FORMAT]

現在,讓我們看一下如何更改環境變量。

為此,我將使用一個名為confidential.txt包含:

A sample file containg password and username!

And should not be shared by any means.

My loging credentials are:

        username=$USERNAME
        password=$PASSWORD

現在,讓兩者都有替代值$USERNAME$PASSWORD首先,我將為兩者創建一個導出變量:

export USERNAME=abhiman
export PASSWORD=strongphrase

完成導出變量值後,您可以在創建的文件上調用 envsubst 命令:

envsubst < confidential.txt

正如您所看到的,值已成功更改!

同樣,您可以使用 unset 命令取消設置這些變量。 讓我來告訴你怎麼做。

首先,取消設置您使用導出命令指定的變量。

就我而言,那些是,USERNAMEPASSWORD:

unset USERNAME PASSWORD

現在,如果你運行envsubst再次命令,它會導致空白:

desarmar variables en linux

如果你對它是如何發生的感到好奇,讓我提醒你我之前提到的事情。

envsubst 命令只適用於導出的變量,當我使用 unset 命令時,值是空的。

當 envsubst 命令沒有找到任何要替換的值時,它會輸出空白。

將輸出重定向到特定文件

擁有終端的輸出目錄並不總是最好的方式,在這種情況下,您可以將標準輸出重定向到文件。

要將輸出重定向到文件,您必須使用>重定向符號。

例如這裡,我將輸出重定向到名為Output.txt:

envsubst < confidential.txt > Output.txt
redirigir la salida de envsubst al archivo en Linux

使用帶有 SHELL-FORMAT 的 envsubst 命令替換特定變量

因此,假設您導出了多個環境變量,但只想替換其中的一些。

在這種情況下,您可以使用 SHELL-FORMAT。

語法非常靈活,您需要做的就是在''您可以通過多種方式使用它:

它可以用作:

envsubst '$variable' > file

或者您可以像這樣添加多個變量:

envsubst '$variable1 $variable1 $variable3' > file

您甚至可以添加基本文本以更好地理解:

envsubst 'subsitute the $variable1 and $variable2' > file

非常靈活。 好的?

現在對於這個例子,我將使用一個名為Substitute.txt其中包含以下內容:

Hello, My name is $USER.

And these are login credentials for $SERVICE:

        username=$USERNAME
        password=$PASSWORD

Not meant for public use!

接下來,我將導出上述文件中使用的每個變量的值:

export USER=sagar export SERVICE=AWS export USERNAME=LHB export PASSWORD=randomphrase  

在不替換任何特定變量的情況下,它應該給我以下輸出:

use el comando envsubst para sustituir las variables de entorno

所以假設我只想要的值$USER$SERVICE讓它反映在輸出中,所以我將使用以下內容:

envsubst '$USER $SERVICE' < Substitute.txt
sustituya variables específicas usando envsubst con SHELL-FORMAT en Linux

如您所見,它顯示了以下值$USER$SERVICE離開時$USERNAME$PASSWORD事情進展得怎麼樣了。

處理私人信息的有序方式。 是不是這樣?

你喜歡玩變量嗎? 我們有更多

如果您是一名開發人員並且喜歡使用環境變量,那麼您可以通過以下方式了解每個變量的價值:

或者,如果您有興趣了解在 basha 中使用變量的不尋常方法,可以按照以下方法進行操作:

我希望這篇文章對您有用,如果您對本指南或任何其他指南有任何疑問,或者只是想讓我介紹一個特定主題,請在評論中告訴我。

相關文章