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

1

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.

    
por Camden Narzt 24.05.2015 / 17:50

0 respostas