【发布时间】:2020-03-25 09:00:25
【问题描述】:
在 bash 中,以下命令在使用参数替换的地方起作用
$ VALUE_AUS=20m; COUNTRY=AUS; PARAM=VALUE_$COUNTRY; echo ${!PARAM}
20m
但是在 Alpine 容器中使用 sh 相同的命令失败
# VALUE_AUS=20m; COUNTRY=AUS; PARAM=VALUE_$COUNTRY; echo ${!PARAM}
/bin/sh: syntax error: bad substitution
使用 /bin/sh 达到相同结果的正确语法是什么?
【问题讨论】:
-
${!PARAM}是一个 bash 扩展,Alpine 使用的是sh。 -
是的,所以我正在寻找一种在 sh 中获得相同行为的方法?
-
等效要求使用
eval -
使用
eval "echo $PARAM"输出值VALUE_AUS,但需要的是20m,这是VALUE_AUS参数的值