Bash中的错误替换



我写了这段代码,其中我得到了糟糕的替换错误。请帮忙。

#!/bin/bash
function detect_value(){
#some operation gives u a value
echo "ABCD"
}
ABCD_COUNT=26
echo "${"$(detect_value)"_COUNT}"

bash run.shrun.sh:第12行:${"$(detect_value)"_COUNT}:错误的替换

参数名必须是静态的,不能由其他表达式产生。要完成所需的操作,需要使用间接参数展开,其中要展开的参数名称存储在另一个参数中。

t=$(detect_value)_COUNT
echo ${!t}

根据您的用例,您可能需要使用关联数组来代替。

declare -A counts
counts[ABCD]=26
detect_value () {
echo ABCD
}
echo "${counts[$(detect_value)]}"

最新更新