Хочу с помощью скрипта поменять PS1
Пишу следующее:#!/bin/bash
PS1="My new promt: "
echo "PS1 will be change on $PS1"
export PS1
и блин не меняет, я думаю что неправильно понимаю что делает export Объясните в чем проблема?
>Хочу с помощью скрипта поменять PS1
>Пишу следующее:
>
>#!/bin/bash
>
>PS1="My new promt: "
>echo "PS1 will be change on $PS1"
>export PS1
>
>
>и блин не меняет, я думаю что неправильно понимаю что делает export
>Объясните в чем проблема?А как вызываешь?
Надо . script
>А как вызываешь?
>Надо . scriptchmod +x script.sh
и ./script.shО работает с .
а какая разница?
>>А как вызываешь?
>>Надо . script
>
>chmod +x script.sh
>и ./script.sh
>
>О работает с .
>а какая разница?точка означает выполнить скрипт не в новом процессе, а в текущем, поэтому установка переменных срабатывает нормально, иначе переменные устанавливаются только для нового процесса и его потомков.
> иначе переменные устанавливаются только для нового процесса
> и его потомков.а разве этот скрипт не является потомком запущенного shell'a? я думал все процессы от него растут :)
Т.е у каждого процесса свой параметры среды и они ни как не пересекаются...
>> иначе переменные устанавливаются только для нового процесса
>> и его потомков.
>
>а разве этот скрипт не является потомком запущенного shell'a? я думал все
>процессы от него растут :)
>Т.е у каждого процесса свой параметры среды и они ни как не
>пересекаются...Еще раз: если скрипт запускается с использованием оператора точка, то скрипт выполняется в текущем процессе, а не в новом процессе (потомке).
P.S. Все процессы растут от init
>Т.е у каждого процесса свой параметры среды и они ни как не
>пересекаются...
Ну, естественно, потомок наследует среду от родителя. Но от потомка родителю ничего не передается.