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

Исходное сообщение
"export переменных в среду"

Отправлено z34 , 27-Фев-06 15:26 
Хочу с помощью скрипта поменять PS1
Пишу следующее:

#!/bin/bash

PS1="My new promt: "
echo "PS1 will be change on $PS1"
export PS1


и блин не меняет, я думаю что неправильно понимаю что делает export Объясните в чем проблема?


Содержание

Сообщения в этом обсуждении
"export переменных в среду"
Отправлено madskull , 27-Фев-06 15:55 
>Хочу с помощью скрипта поменять PS1
>Пишу следующее:
>
>#!/bin/bash
>
>PS1="My new promt: "
>echo "PS1 will be change on $PS1"
>export PS1
>
>
>и блин не меняет, я думаю что неправильно понимаю что делает export
>Объясните в чем проблема?

А как вызываешь?
Надо . script


"export переменных в среду"
Отправлено z34 , 27-Фев-06 16:02 
>А как вызываешь?
>Надо . script

chmod +x script.sh
и ./script.sh

О работает с .
а какая разница?


"export переменных в среду"
Отправлено vic , 27-Фев-06 16:41 
>>А как вызываешь?
>>Надо . script
>
>chmod +x script.sh
>и ./script.sh
>
>О работает с .
>а какая разница?

точка означает выполнить скрипт не в новом процессе, а в текущем, поэтому установка переменных срабатывает нормально, иначе переменные устанавливаются только для нового процесса и его потомков.


"export переменных в среду"
Отправлено z34 , 28-Фев-06 06:01 
> иначе переменные устанавливаются только для нового процесса
> и его потомков.

а разве этот скрипт не является потомком запущенного shell'a? я думал все процессы от него растут :)
Т.е у каждого процесса свой параметры среды и они ни как не пересекаются...


"export переменных в среду"
Отправлено vic , 28-Фев-06 12:10 
>> иначе переменные устанавливаются только для нового процесса
>> и его потомков.
>
>а разве этот скрипт не является потомком запущенного shell'a? я думал все
>процессы от него растут :)
>Т.е у каждого процесса свой параметры среды и они ни как не
>пересекаются...

Еще раз: если скрипт запускается с использованием оператора точка, то скрипт выполняется в текущем процессе, а не в новом процессе (потомке).

P.S. Все процессы растут от init


"export переменных в среду"
Отправлено madskull , 28-Фев-06 12:20 
>Т.е у каждого процесса свой параметры среды и они ни как не
>пересекаются...
Ну, естественно, потомок наследует среду от родителя. Но от потомка родителю ничего не передается.