url 打印期间未绑定变量 bash/shell

Unbound variable during url printing in bash/shell

我有 2 个变量想用来导出第三个变量:

export REGION_NAME=phx

export phx_url=https://www.google.com

我正在尝试执行以下操作:

echo "$((${REGION_NAME}_url))"

我收到以下错误:

-sh: https://www.google.com: syntax error in expression (error token is "://www.google.com")

我想做的就是从另一个环境变量派生一个环境变量,但它并不像那样简单。我觉得应该是转义了,网上找不到。

在此先感谢您的帮助。

一种可能的解决方案是使用 eval,例如:

var="phx"
eval "${var}_url='some'"
echo $phx_url   #prints "some"

但是,我不推荐这样做(因为 eval 可能非常危险)。

而不是使用 associative arrays(又名散列变量),例如:

declare -A urls

var="phx"
urls[$var]="some2"
echo "${urls[phx]}" #prints "some2"

$((...))是算术展开。你不是那个意思。尝试使用普通变量扩展(使用间接)。

REGION_NAME=phx

phx_url=https://www.google.com

R_VAR=${REGION_NAME}_url    

echo "${!R_VAR}"