需要找到一种基于字符串组合来定位所需变量的方法
#!/bin/bash
DSPDSP="1234"
$A="DSP"
$B="DSP"
PORTLIST=$A$B
echo $PORTLIST
DSPDSP
我希望bash中有一个智能功能,可以将字符串协调成变量名
smart_echo $PORTLIST
1234
答案 0 :(得分:0)
请尝试以下操作:
smart_echo() {
local varname="$1"
echo "${!varname}"
}
DSPDSP="1234"
A="DSP"
B="DSP"
PORTLIST="$A$B"
smart_echo "$PORTLIST"
=> 1234
如果您的bash版本是4.3或更高版本,您也可以说:
smart_echo() {
declare -n p="$1"
echo "$p"
}
答案 1 :(得分:0)
根据您的输入,我发现我的工作版本如下:
A="DSP"
B="DSP"
PORTLIST=$A$B
echo ${!PORTLIST}
=> 1234