The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Подстановка переменной 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, 12:10 , 28-Фев-11 (1)
    > 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, 13:52 , 28-Фев-11 (2)
      >> 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, 15:57 , 28-Фев-11 (4)
        >>> 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, 13:53 , 28-Фев-11 (3)
      >> 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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру