2013-09-17 2 views
2

У меня проблема с скриптом bash.Как вставить переменную в другую переменную с bash

Я хотел бы вставить переменную в другую переменную в сценарии bash, но это не то, что я должен ожидать.

Здесь код

input1="inputnumber1" 
input2="inputnumber2" 
input3="inputnumber3" 
dummy="input" 
for i in $(seq 1 3) 
do 
    toprint=$dummy$i 
    echo "$toprint" 
done 

Я ожидал бы этот код Обновление содержимого переменной $ input1, $ input2 и $ вход3, но это просто напечатать input1, INPUT2 и INPUT3.

Любое предложение?

Заранее спасибо.

+1

Используйте '' {1..3} '' вместо НомерСтарта –

ответ

3

Используйте косвенную ссылку на переменную:

varname="$dummy$i" 
toprint="${!varname}" 
+1

Хорошо, спасибо! Это то, что я искал. – user2567475

2

Say:

echo "${!toprint}"; 

Также читать this. Вы также можете прочитать об косвенном расширении в manual.

+0

Благодарим вас за помощь. Это сложнее! – user2567475

1

Попробуйте команду eval:

eval toprint='$'$dummy$i 
echo $toprint 

More on eval на unix.stackexchange.com

+0

Это тоже хороший! – user2567475

Смежные вопросы