No OS X, você pode adicionar um shell ao / etc / shells e configurá-lo como o shell padrão de um usuário, de tal forma que quando eles abrem o terminal, eles são apresentados com esse shell. Além disso, você tem a opção de abrir todas as novas guias de terminal no mesmo diretório da guia atualmente focada. Isso é feito enviando o pwd para o aplicativo terminal por meio de uma função incorporada no prompt e a nova guia passando essa informação para login ou bash. Minha pergunta é como esta informação é passada para login ou bash, como argumentos? Variável Env?
O motivo pelo qual eu quero saber é que os shells que acompanham o OS X não mostram o cd /path/to/last/dir
que é o primeiro comando executado quando você abre uma tabulação (com as configurações do dir como desejado) enquanto usa um shell que não é fornecido com o OS X (por exemplo, um bash moderno), e eu gostaria de encontrar uma maneira de replicar isso na minha configuração.
O terminal tem um /usr/local/bin/bash --noediting -i
em execução e cada guia tem a seguinte execução:
login -pf camdennarzt
-bash
e se você estiver usando um shell que não é fornecido com o OS X, o primeiro comando executado é cd /path/to/last/dir
, mas é executado em um prompt como se o comando tivesse sido digitado. E se você estiver usando um shell incluído, dir ainda é alterado, mas o comando que faz isso não é mostrado.
/etc/bashrc_Apple_Terminal
parece estar relacionado.
No Sierra, isso mostra que o shell é iniciado como: login -pfl camdennarzt /bin/bash -c 'exec -la bash /usr/local/bin/bash'
e o problema desapareceu, portanto isso pode estar relacionado.