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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: как работает команда export ?  (Прочитано 2606 раз)

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

Оффлайн sydenis

  • Автор темы
  • Участник
  • *
  • Сообщений: 121
    • Просмотр профиля
как работает команда export ?
« : 26 Апреля 2011, 16:28:47 »
есть два скрипта:

1. myvars,sh :
#!/bin/bash
export pv=YESSS
echo pv1 = $pv

2. myscript.sh :
#!/bin/bash
,/myvars.sh
echo pv2 = $pv

Запускаем ./myscript.sh  и получаем:
pv1 = YESSS
pv2 =

чозанафиг?

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6287
    • Просмотр профиля
Re: как работает команда export ?
« Ответ #1 : 26 Апреля 2011, 16:36:46 »
не нафик, а изучаем команду source.

Оффлайн sydenis

  • Автор темы
  • Участник
  • *
  • Сообщений: 121
    • Просмотр профиля
Re: как работает команда export ?
« Ответ #2 : 27 Апреля 2011, 14:30:00 »
прям совсем как не в виндувз! 
там если процесс из  процесса вызываешь, то он всё родительское окружение наследует,
а здесь ещё надо специально ему об этом напомнить
спасибо за наводку

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: как работает команда export ?
« Ответ #3 : 27 Апреля 2011, 17:15:18 »
Не, не правильно поняли.

Тут у вас в наследованном процессе изменена переменная, но она изменена в контексте дочернего процесса, и в контекст родительского не передается никаким export-ом.

И это - одна из защит системы - если бы вы могли поменять переменные окружения родительского процесса в дочернем - то легко и непринужденно можно так добраться до рутовых процессов и "наинструктировать их" как вам угодно... или как угодно злоумышленнику.... :-

Пользователь решил продолжить мысль 27 Апреля 2011, 17:20:04:
Export позволяет передать дочерним процессам текущего переменную, без него переменная останется в окружении текущего процесса и порожденный получит окружение без этой переменной.
« Последнее редактирование: 27 Апреля 2011, 17:20:04 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

 

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