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}"
我有 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}"