URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9051
[ Назад ]

Исходное сообщение
"Подстановка переменной bash"

Отправлено New_Birth , 28-Фев-11 11:22 
Помогите пожалуйста с подстановкой переменных в баше. Есть скрипт:

array_of_hosts1=(5, 2, 3, 4); j=1; echo "-h ${array_of_hosts$j[0]}";

Мне нужно вывести нулевой символ массива array_of_hosts1. Но дело в том, что массив может называться array_of_hosts2, array_of_hosts5 и т.д. Если выводить так:
    
array_of_hosts1=(5, 2, 3, 4); j=1; echo "-h ${array_of_hosts1[0]}";

то все работает...


Содержание

Сообщения в этом обсуждении
"Подстановка переменной bash"
Отправлено Andrey Mitrofanov , 28-Фев-11 12:10 
> array_of_hosts1=(5, 2, 3, 4); j=1; echo "-h ${array_of_hosts$j[0]}";
> Мне нужно вывести нулевой символ массива array_of_hosts1. Но дело в том, что

$ array_of_hosts1=(5, 2, 3, 4); j=1; x="array_of_hosts$j"; echo "-h ${!x[0]}";
-h 5,
$ array_of_hosts1=(5, 2, 3, 4); j=1; x="array_of_hosts$j[0]"; echo "-h ${!x}";
-h 5,
$ _


"Подстановка переменной bash"
Отправлено New_Birth , 28-Фев-11 13:52 
>> array_of_hosts1=(5, 2, 3, 4); j=1; echo "-h ${array_of_hosts$j[0]}";
>> Мне нужно вывести нулевой символ массива array_of_hosts1. Но дело в том, что
> $ array_of_hosts1=(5, 2, 3, 4); j=1; x="array_of_hosts$j"; echo "-h ${!x[0]}";
> -h 5,
> $ array_of_hosts1=(5, 2, 3, 4); j=1; x="array_of_hosts$j[0]"; echo "-h ${!x}";
> -h 5,
> $ _

Спасибо огромное. Работает )


"Подстановка переменной bash"
Отправлено New_Birth , 28-Фев-11 15:57 
>>> array_of_hosts1=(5, 2, 3, 4); j=1; echo "-h ${array_of_hosts$j[0]}";
>>> Мне нужно вывести нулевой символ массива array_of_hosts1. Но дело в том, что
>> $ array_of_hosts1=(5, 2, 3, 4); j=1; x="array_of_hosts$j"; echo "-h ${!x[0]}";
>> -h 5,
>> $ array_of_hosts1=(5, 2, 3, 4); j=1; x="array_of_hosts$j[0]"; echo "-h ${!x}";
>> -h 5,
>> $ _
> Спасибо огромное. Работает )

А как стоит поступать, если мне нужно вывести начиная с 3-го элемента и до конца массива?


"Подстановка переменной bash"
Отправлено DeadLoco , 28-Фев-11 13:53 
>> array_of_hosts1=(5, 2, 3, 4); j=1; echo "-h ${array_of_hosts$j[0]}";
>> Мне нужно вывести нулевой символ массива array_of_hosts1. Но дело в том, что
> $ array_of_hosts1=(5, 2, 3, 4); j=1; x="array_of_hosts$j"; echo "-h ${!x[0]}";
> -h 5,
> $ array_of_hosts1=(5, 2, 3, 4); j=1; x="array_of_hosts$j[0]"; echo "-h ${!x}";
> -h 5,
> $ _

Либо через eval