Как объединить две строки и использовать их как переменную? - PullRequest
0 голосов
/ 09 января 2019

Необходимо найти способ найти нужные переменные на основе комбинации строк

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

DSPDSP

Я надеюсь, что в bash есть умная функция, которая объединяет строку в имя переменной

smart_echo $PORTLIST

1234

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Спасибо, основываясь на ваших комментариях, я нашел свою рабочую версию, например:

    A="DSP" 
    B="DSP"
    PORTLIST=$A$B 
    echo ${!PORTLIST} 

=> 1234

0 голосов
/ 09 января 2019

Пожалуйста, попробуйте что-то вроде:

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"
}
...