Какую подсказку использует sh при вводе sh в Терминал?

813
Igorio

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

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

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

station-4:~ user$ export PS1=">>>" >>>sh >>> 
2
Попробуйте `which sh`, чтобы увидеть, какова ваша оболочка, и проверьте результат на наличие символических ссылок. Kerrek SB 12 лет назад 0

1 ответ на вопрос

4
grawity

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

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