Um bash
shell que é um shell de login irá fornecer ~/.bash_profile
.
O arquivo ~/.bash_profile
no sistema Cygwin de Marcel continha a linha
[[ -z $SSH_AGENT_PID && -z $DISPLAY ]] && exec -l ssh-agent $SHELL -c "bash --login"
Isso iniciará ssh-agent
se nenhum agente estiver sendo executado no ambiente shell atual e se não houver nenhuma exibição X11 disponível. O agente SSH iniciará dois novos bash
shells, um shell não interativo e um shell de login (o shell de login irá ignorar a linha acima, pois terá $SSH_AGENT_PID
set). O agente SSH substitui o shell do qual ele está começando, em virtude de ter sido iniciado com exec
.
Os dois processos bash
que podem ser vistos são
- Aquele iniciado por
ssh-agent
(isso é$SHELL -c
) e - Aquele iniciado pelo
$SHELL -c
, invocandobash --login
.
Para mim, parece que a linha pode ser simplificada em
[[ -z $SSH_AGENT_PID && -z $DISPLAY ]] && exec -l ssh-agent bash --login
Isso eliminaria o shell extra que o ssh-agent
usa apenas para executar bash --login
.