Fre*_*ndt 6 bash environment-variables
我认为举个例子就行了。考虑我有这两个环境变量设置(通过持续交付工具):PACKAGE_VER=1.2.3和USE_VERSION_FROM=PACKAGE_VER.
我现在想要的是一个脚本,它无法预测指出的变量名称1.2.3,只有USE_VERSION_FROM. 因此,我正在寻找一种方法,让我的脚本知道要使用的版本 ( 1.2.3),而无需知道任何其他信息,USE_VERSION_FROM指出包含版本号的变量的名称。
我天真的不工作的第一次尝试:
#!/bin/bash
VERSION_TO_USE="${${USE_VERSION_FROM}}"
Run Code Online (Sandbox Code Playgroud)
PACKAGE_VER=1.2.3
USE_VERSION_FROM=PACKAGE_VER
VERSION_TO_USE=${!USE_VERSION_FROM}
echo $VERSION_TO_USE
Run Code Online (Sandbox Code Playgroud)
1.2.3
Run Code Online (Sandbox Code Playgroud)
这是bash 手册中描述的“间接参数扩展”
请注意,这不是严格必要对变量赋值提供报价a=$bVS a="$b"-字的分配期间不进行拆分(不能只是现在发现为参考)