Создание имени строковой переменной из значения другой строки - программирование
Подтвердить что ты не робот

Создание имени строковой переменной из значения другой строки

В моем bash script у меня есть две переменные CONFIG_OPTION и CONFIG_VALUE, которые содержат строки VENDOR_NAME и Default_Vendor соответственно.

Мне нужно создать переменную с именем $CONFIG_OPTION ie VENDOR_NAME и присвоить значение в CONFIG_VALUE вновь созданной переменной.

Как я могу это сделать?

Я пробовал

$CONFIG_OPTION=$CONFIG_VALUE

Но я получаю сообщение об ошибке в этой строке как

'./Build.bash: line 137: VENDOR_NAME="Default_Vendor": command not found'

Спасибо.

4b9b3361

Ответ 1

Я знаю, что никто не упомянет об этом, поэтому я пойду. Вы можете использовать printf!

#!/bin/bash

CONFIG_OPTION="VENDOR_NAME"
CONFIG_VALUE="Default_Vendor"

printf -v $CONFIG_OPTION "$CONFIG_VALUE"

# Don't believe me?
echo "$VENDOR_NAME"

Готово!

Кстати, это довольно быстрый метод (так же быстро, как и метод declare).

Ответ 2

В нем используются bash встроенные функции:

#!/bin/bash

VAR1="VAR2"

declare "${VAR1}"="value"

echo "VAR1=${VAR1}"
echo "VAR2=${VAR2}"

Выход script:

VAR1=VAR2
VAR2=value

В этом фрагменте используются имена переменных:

#!/bin/bash

CONFIG_OPTION="VENDOR_NAME"

declare "${CONFIG_OPTION}"="value"

echo "CONFIG_OPTION=${CONFIG_OPTION}"
echo "VENDOR_NAME=${VENDOR_NAME}"

Выход script:

CONFIG_OPTION=VENDOR_NAME
VENDOR_NAME=value