Quando bash parou de exportar SHELL?

1

Eu atualizei uma caixa Debian do stable para o Jessie e notei que o SHELL não é mais exportado, então os programas de tela e similares começam a funcionar para subshells ao invés do bash.

Quando essa mudança foi feita e por quê?

    
por hildred 01.03.2015 / 22:59

1 resposta

3

Há muito, muito tempo atrás:

This document details the changes between this version, bash-2.05a-rc1, and the previous version, bash-2.05a-beta1.

  1. Changes to Bash

w. Bash no longer auto-exports HOME, PATH, SHELL, or TERM, even though it gives them default values if they don't appear in the initial environment.

Não sei qual é o motivo, mas faz sentido: não há razão para que a execução de um script bash defina SHELL para processos inferiores, caso não tenha sido definido. O Bash exporta apenas PWD (porque é suposto, para o que for bom), OLDPWD (o complemento de PWD ) e SHLVL (que deve ser sempre definido por shells).

A razão SHELL é normalmente definida para o seu shell de login é que ele está definido no ambiente pelo programa de login ( login , sshd , etc.). Este ainda deve ser o caso em jessie. Se algum método de login não definir SHELL , provavelmente será um erro no método de login.

    
por 02.03.2015 / 02:57