访问名称来自插值字符串的环境变量

问题描述 投票:0回答:1

我有以下内容:

for VAR in "GB" "IE" "DE" "CA" "NY"
do
    echo $(STRIPE_$VAR)
done

我正在尝试打印 5 个环境变量 SRIPE_GB、STRIPE_IE 等...

这回来了

zsh: command not found: STRIPE_GB

zsh: command not found: STRIPE_IE

zsh: command not found: STRIPE_DE

zsh: command not found: STRIPE_CA

zsh: command not found: STRIPE_NY

我已经尝试过了

for VAR in "GB" "IE" "DE" "CA" "NY"
do
    echo "$(STRIPE_$VAR)"
done

以及其他品种的列表,但似乎无法让它将

$(STRIPE_$VAR)
识别为
$STRIPE_GB

如有任何帮助,我们将不胜感激

zsh
1个回答
0
投票

这是因为您尝试在子 shell 中执行

STRIPE_xx
,因为您在
()
括号中键入了它。子 shell 将
STRIPE_xx
字符串视为 shell 命令。

删除

()
并尝试像这样进行插值:
echo "$STRIPE_$VAR"
echo "${STRIPE}_${VAR}"

© www.soinside.com 2019 - 2024. All rights reserved.