![](/img/trans.png)
[英]ASH/BASH in Alpine: how to expand a variable from a list of variable names read from a list file
[英]Get enviroment variable from string with ash
考慮以下:
/ # echo $TEMPLATEGO_SERVICE_HOST
192.168.1.1
/ # export string="TEMPLATEGO_SERVICE_HOST"
/ # echo $string
TEMPLATEGO_SERVICE_HOST
使用bash我可以做到:
/ echo ${!string}
192.168.1.1
如果我對ash嘗試相同,則會收到以下錯誤:
/ # echo ${!string}
ash: syntax error: bad substitution
我在一個高山容器中運行,並且作為一種解決方法,我正在下載bash並使用它。 但要避免在我的Docker映像上出現額外的大小。
在ash
執行此操作的唯一方法是使用eval
。 但是,您應該驗證要評估的內容僅包含有效的shell標識符,以避免從不受信任的值執行意外的代碼。 例如,
if echo "$string" | grep -q '^[a-zA-Z_][a-zA-Z0-9_]*$' "$string"; then
eval echo \$$string
fi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.