2015-03-18 4 views
0
FontName=Ubuntu 
FontSize=300 
let $FontName$FontSize=21 

Получение значения легко, используя следующие:Несколько косвенных переменных с командой, пусть (GNU/Linux Bash)

echo $Ubuntu300 
21 

Однако, как я могу получить тот же результат, используя переменные?

Я пытался что-то вроде:

echo ${!FontName!FontSize} 

но не повезло, я надеюсь, что я по крайней мере близко!

ответ

1

Вы должны присвоить новую динамическую переменную в новую, как это:

var=$FontName$FontSize 

Затем используйте расширение косвенного параметра, чтобы получить его значение:

echo ${!var} 

Выведет 21

+0

Отлично! Спасибо higuaro – TuxForLife

+0

Добро пожаловать! – higuaro

1

Вы можете попробовать следующее:

FontName=Ubuntu 
FontSize=300 
let ${FontName}${FontSize}=21 

echo $Ubuntu300 
21 

Для любопытства, вместо назначения новой переменной:

echo $((${FontName}${FontSize})) 
21 
+0

jderfinko, я думаю, вы имели в виду 'echo $ (($ {FontName} $ {FontSize})) Однако это сработало, и я получил ожидаемый результат! Спасибо, мне также было любопытно, можно ли обойтись без назначения новой переменной – TuxForLife

+1

Вы правы, я отредактировал свой ответ :) – jderefinko