Por que o MAIL está indefinido em ambientes gráficos?

3

Eu recebo notificações de novos e-mails ao executar bash interativamente no console do Linux, mas não as obtenho em xterm ou konsole .

A variável de ambiente MAIL está definida como /var/mail/USER após o login no console, mas está vazia em xterm e konsole .

Além disso, MAIL não é mencionado em .bashrc , .profile , /etc/bash.bashrc , /etc/profile , /etc/profile.d/* nem é impresso em grep -r MAIL= /etc .

Por que não está definido no ambiente gráfico? (Debian 7.0)

    
por n.r. 29.06.2013 / 16:57

1 resposta

3

O programa login define a variável ambiental MAIL quando você faz login em um console virtual do Linux.

Na% man_de% manpage:

The value for $HOME, $USER, $SHELL, $PATH, $LOGNAME, and $MAIL are set according to the appropriate fields in the password entry.

login(1) é o programa usado para iniciar uma sessão quando você faz login em um console virtual do Linux. Ele solicita um nome de usuário e senha, define algumas variáveis ambientais básicas e inicia um shell.

Se você estiver usando um gerenciador de login gráfico (por exemplo, um fornecido com o Gnome ou o KDE) em vez de login , a variável de ambiente login pode não estar definida.

Normalmente, o Bash apenas fornece notificações por e-mail quando está sendo usado como um shell de login. Mesmo que a variável MAIL do ambiente esteja definida, uma instância interativa normal de MAIL em bash ou xterm não exibirá uma notificação por email.

Você pode executar konsole com o sinal bash para forçá-lo a se comportar como um shell de login. Você pode passar -l o xterm flag para fazer com que ele inicie seu shell como um shell de login.

    
por 29.06.2013 / 17:03

Tags