2

При использовании приглашения PS1 по умолчанию, с которым поставляется MAC OS/Terminal, при вводе sh вы получаете приглашение нового стиля.

station-4:~ user$ sh
sh-3.2$ 

Когда вы экспортируете свой собственный PS1, эта функциональность исчезает. Вы вводите sh, и вы все равно получаете подсказку PS1, которую вы указали. Почему это?

station-4:~ user$ export PS1=">>>"
>>>sh
>>>

1 ответ1

4

"Экспорт" является ключевым словом. Сам у меня нет Mac, но я предполагаю, что его файл bashrc не экспортирует $PS1 , а просто устанавливает его, так что bash сам видит переменную, но не передает ее в среду новых процессов. (bash - оболочка по умолчанию, используемая OS X.)

Вы можете использовать printenv PS1 , env | grep ^PS1 или declare -p PS1 чтобы узнать, является ли переменная частью среды. (Вы увидите declare -x если переменная экспортирована, declare -- иначе.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .