Como o Terminal do OS X passa o diretório da nova aba para fazer login ou bash?

Como o Terminal do OS X passa o diretório da nova aba para fazer login ou bash?

No OS X, você pode adicionar um shell a /etc/shells e defini-lo como o shell padrão do usuário, de forma que, quando eles abrirem o terminal, sejam apresentados a esse shell. Além disso, você tem a opção de abrir todas as novas guias do terminal no mesmo diretório da guia atualmente em foco. Isso é feito enviando o pwd para o aplicativo do terminal por meio de uma função incorporada no prompt e a nova guia passando essas informações para faça login ou bash. Minha pergunta é como essas informações são passadas para login ou bash, como argumentos? Variável ambiente?

O motivo pelo qual quero saber é que os shells fornecidos com o OS X não mostram esse cd /path/to/last/diré o primeiro comando executado quando você abre uma guia (com as configurações de diretório conforme desejado) enquanto usa um shell que não é fornecido com o sistema operacional X (por exemplo, um bash moderno) e gostaria de encontrar uma maneira de replicar isso em minha configuração.

O terminal tem uma /usr/local/bin/bash --noediting -iem execução e cada guia tem a seguinte em execução:

login -pf camdennarzt -bash

e se você estiver usando um shell que não vem com o OS X, o primeiro comando executado será cd /path/to/last/direxecutado em um prompt como se o comando fosse digitado. E se você estiver usando um shell incluído, o diretório ainda será alterado, mas o comando que faz isso não é mostrado.

/etc/bashrc_Apple_Terminalparece estar relacionado.

No Sierra mostra que o shell foi iniciado como: login -pfl camdennarzt /bin/bash -c 'exec -la bash /usr/local/bin/bash'e o problema desapareceu, então isso pode estar relacionado.

informação relacionada