
В OS X вы можете добавить оболочку в /etc/shells и установить ее в качестве оболочки пользователя по умолчанию, так что при открытии терминала им будет представлена эта оболочка. Кроме того, у вас есть возможность открывать все новые вкладки терминала в том же каталоге, что и текущая вкладка, это достигается путем отправки пароля в приложение терминала через функцию, встроенную в приглашение, и новой вкладкой, передающей эту информацию в login или bash. У меня вопрос: как эта информация передается в login или bash в качестве аргументов? Переменная env?
Причина, по которой я хочу это знать, заключается в том, что оболочки, поставляемые с OS X, не показывают, cd /path/to/last/dir
что это первая команда, запускаемая при открытии вкладки (с желаемыми настройками dir) при использовании оболочки, которая не поставляется с OS X (например, современный bash), и я хотел бы найти способ воспроизвести это в своей настройке.
На терминале запущено одно /usr/local/bin/bash --noediting -i
приложение, а на каждой вкладке запущено следующее:
login -pf camdennarzt -bash
и если вы используете оболочку, которая не поставляется с OS X, то первая запущенная команда будет , cd /path/to/last/dir
но она запускается в приглашении, как будто команда была введена. А если вы используете включенную оболочку, каталог все равно изменится, но команда, которая это делает, не будет показана.
/etc/bashrc_Apple_Terminal
похоже, это связано.
В Sierra это показывает, что оболочка запускается как: login -pfl camdennarzt /bin/bash -c 'exec -la bash /usr/local/bin/bash'
и проблема исчезает, так что это может быть связано.