2015-03-13 3 views
0

Извините запутанный вопрос. Я точно не знаю, как это сделать?Определить переменную и ввести одновременно?

мне нужно определить переменную:

variable = "Description$count" 

Хотя в то же время, используя его в качестве входных данных .. если это имеет смысл ?: --inputbox "$(Description$count)

for ((count=$(ovftool vco.ovf | grep -i -A 60 Properties: | grep Description: | wc -l); count > -1; count--)) 
do 

     declare "DiagRes$Count"=$(whiptail --inputbox "$(Description$count)" 8 110 --title "$Label1" 3>&1 1>&2 2>&3) 
done 

Любая помощь высоко ценится

+0

Ваш вопрос непонятен. Не могли бы вы прояснить это немного? Каким образом вы хотите «использовать его как вход»? Не могли бы вы написать очень короткий пример, без остального окружающего кода, того, что вы ожидаете, что переменная начнется как, и что вы ожидаете получить? –

+0

Привет, Брайан, Спасибо за внимание, и я сожалею о двусмысленном вопросе. Итак, например, скажем, что $ count имеет значение 1 Я хочу, чтобы --inputbox whiptail использовал $ description1, которому ранее было присвоено значение vaulue в скрипте . Затем число $ count увеличится до 2 и - в поле ввода whiptail будет использовать $ description2 и так далее Это имеет смысл? Я знаю, что, возможно, это становится сложнее, чем это должно быть? – SparkyRohan

ответ

0

Вместо того, чтобы пытаться создать имена переменных как-то вроде "\$description$count", это похоже на хорошее место для использования arrays.

Просто определять элементы массива следующим образом:

description[0]="First description" 
description[1]="Second description" 

А затем в цикле, присвоить результаты в массиве, и извлечь ваши описания из первого массива:

diag_res[$i]=$(whiptail --inputbox "${description[$i]}" ...) 

Заметим, что массивы являются специфичной для Bash функцией и не поддерживаются всеми оболочками POSIX.

+0

Гений Брайан, спасибо вам большое! :) – SparkyRohan

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