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


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

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

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
  1. $ bash -cx 'I=1 ; while read ; do let I++ ; echo $I ; done < <(echo -e "1\n2\n3") ; echo $I'
  2. + I=1
  3. + read
  4. ++ echo -e '1\n2\n3'
  5. + let I++
  6. + echo 2
  7. 2
  8. + read
  9. + let I++
  10. + echo 3
  11. 3
  12. + read
  13. + let I++
  14. + echo 4
  15. 4
  16. + read
  17. + echo 4
  18. 4

Оффлайн compplace

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

Оффлайн ArcFi

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

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

 

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