
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 -i
em 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/dir
executado 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_Terminal
parece 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.