如何合并两个字符串并将其用作变量?

时间:2019-01-09 02:33:21

标签: bash variables combinations

需要找到一种基于字符串组合来定位所需变量的方法

#!/bin/bash
DSPDSP="1234"
$A="DSP"
$B="DSP"
PORTLIST=$A$B
echo $PORTLIST

DSPDSP

我希望bash中有一个智能功能,可以将字符串协调成变量名

smart_echo $PORTLIST

1234

2 个答案:

答案 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