我們通過路徑將秘密傳送到我們的容器中,例如:/mnt/secrets
...并且該目錄中的每個后續檔案都是“秘密”,內容為值:例如 /mnt/secrets/somepassword 包含“superdooperpassword123”
發生這種情況是因為我們正在從秘密存盤提供者(加密等)管理我們的秘密。但是,我需要將這些檔案 檔案內容轉換為環境變數,以便在其他腳本中使用。
這是我試圖用來完成此任務的腳本,secrets.sh:
FILES="/mnt/secrets/*"
for f in $FILES
do
FILE=$(basename $f)
echo "Creating environment variable for the following secret: $FILE"
declare -xg $(echo $FILE)=$(cat $f)
done
雖然這運行沒有錯誤,但當我嘗試確保它們可用時,我看不到(通過'set'或用'echo $var'什么也得不到)。我已經為'declare'嘗試了多個引數,但我似乎無法將在secrets.sh(來自檔案及其內容)中運行的宣告變數公開回bash。
我知道我可能遺漏了一些簡單的東西。任何幫助都將不勝感激,指導我如何使用 shell 腳本將檔案及其內容從檔案系統讀取到動態創建的環境變數中。蒂亞!~
uj5u.com熱心網友回復:
您必須來源檔案
source secrets.sh
或者
. secrets.sh
否則,您正在設定與父行程不同的子行程變數
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/422142.html
標籤:
