Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Область видимости переменных в bash  (Прочитано 4632 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Область видимости переменных в bash
« Ответ #15 : 17 Апреля 2013, 14:58:59 »
Исходите из того, что конвейер это запуск стороннего процесса независимого от основного и передача ему данных.
Цитировать
А есть ещё варианты?
Потому и написал, что это пример. Надо брать код и смотреть как решать.
Можно использовать переменную с разделителями, или массив, или файл. По шаблонам:
while read ... done < "$filename"

Оффлайн compplace

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Область видимости переменных в bash
« Ответ #16 : 18 Апреля 2013, 13:22:19 »
Исходите из того, что конвейер это запуск стороннего процесса независимого от основного и передача ему данных.
Цитировать
А есть ещё варианты?
Потому и написал, что это пример. Надо брать код и смотреть как решать.
Можно использовать переменную с разделителями, или массив, или файл. По шаблонам:
while read ... done < "$filename"
Цикл кучу текста выводит, переменную потом надо парсить ещё тогда. В общем решил извращённым способом - файлами.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Область видимости переменных в bash
« Ответ #17 : 18 Апреля 2013, 13:34:52 »
В общем решил извращённым способом - файлами.
Вы по ссылкам не ходите из принципа?

Оффлайн compplace

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Область видимости переменных в bash
« Ответ #18 : 18 Апреля 2013, 14:13:07 »
В общем решил извращённым способом - файлами.
Вы по ссылкам не ходите из принципа?
По какми ссылкам? Я уже всё обыскал и все варианты перепробовал. Не передаёт subshell переменные обратно. Решил файлами. Можно тему закрывать.



Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Область видимости переменных в bash
« Ответ #21 : 19 Апреля 2013, 07:24:11 »
Я ж говорю не работает так.
Работает:
Код: (bash) [Выделить]
$ bash -cx 'I=1 ; while read ; do let I++ ; echo $I ; done < <(echo -e "1\n2\n3") ; echo $I'
+ I=1
+ read
++ echo -e '1\n2\n3'
+ let I++
+ echo 2
2
+ read
+ let I++
+ echo 3
3
+ read
+ let I++
+ echo 4
4
+ read
+ echo 4
4

Оффлайн compplace

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Область видимости переменных в bash
« Ответ #22 : 19 Апреля 2013, 18:54:55 »
Я ж говорю не работает так.
Работает:
Код: (bash) [Выделить]
$ bash -cx 'I=1 ; while read ; do let I++ ; echo $I ; done < <(echo -e "1\n2\n3") ; echo $I'
+ I=1
+ read
++ echo -e '1\n2\n3'
+ let I++
+ echo 2
2
+ read
+ let I++
+ echo 3
3
+ read
+ let I++
+ echo 4
4
+ read
+ echo 4
4
Ну это ж не скрипт выбирающий из БД в подцикле и ещё в подцикле.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Область видимости переменных в bash
« Ответ #23 : 19 Апреля 2013, 19:33:46 »
Ну это ж не скрипт выбирающий из БД в подцикле и ещё в подцикле.
Очевидно, это лишь пример.
Я таким макаром парсил и существенно более сложные выхлопы.

Если есть желание разобраться, почему не работает, то включаем логирование и отладку:
exec >script.log 2>&1
set -x

 

Страница сгенерирована за 0.049 секунд. Запросов: 25.