В OS X вы можете добавить оболочку в /etc /shells и установить ее как оболочку пользователя по умолчанию, чтобы при открытии терминала они были представлены с этой оболочкой. Кроме того, у вас есть возможность открыть все новые вкладки терминала в том же каталоге, что и текущая выделенная вкладка, это достигается путем отправки pwd в приложение терминала через функцию, встроенную в приглашение, и новой вкладке, передающей эту информацию в логин или bash. У меня вопрос, как эта информация передается в логин или 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'
и проблема исчезла, так что это может быть связано.