如何在Bash中进行替换内的替换

时间:2019-01-24 03:01:26

标签: bash shell

示例:

X=TEST
TEST_VAR=123

eval echo ${${X}_VAR}

出现错误:

${${X}_VAR}: bad substitution

我如何实现自己的目标?

2 个答案:

答案 0 :(得分:2)

或者完全避免将evalnameref(使用declare -n创建)一起使用,例如

#!/bin/bash

X=TEST
TEST_VAR=123

declare -n foo=${X}_VAR

echo $foo

使用/输出示例

$ ./myscript
123

答案 1 :(得分:1)

只要逃脱美元符号:

eval echo \$${X}_VAR