Abra o arquivo gedit ~/.bashrc e adicione este script no final (não se esqueça de adicionar esse script no END do arquivo):
NewMail(){
NEWMAIL=$(mailx &)
UNREAD=$(echo $NEWMAIL |grep -o 'messages.*new' | cut -f2 -d" ")
}
NewMail # call NewMail function
if [ -n "$UNREAD" ]; then
PS1="[Hi, alex. you have $UNREAD new mail(s)] $PS1"
fi
Escrevemos uma função cujo nome é NewMail .
Explicação da função:
O resultado da primeira linha ( NEWMAIL=$(mailx) ) de acordo com as informações no corpo da pergunta é:
"/var/mail/alex": 2 messages 2 new [...] # if you have a new unread mail
OR
No mail for alex # if you don't have a new mail
Que eu armazenei o resultado acima em uma variável NEWMAIL lá.
Eu passei o resultado para o próximo comando na segunda linha com este comando echo $NEWMAIL .
Então, com este comando grep -o 'messages.*new' , obtenho o resultado entre a palavra "message" e a palavra "new", que é: messages 2 new .
-
-o- Imprime apenas as partes correspondentes (não vazias) de uma linha correspondente, com cada uma dessas partes em uma linha de saída separada.
Agora temos esse resultado messages 2 new . Então eu passo esse resultado para o próximo comando cut -f2 -d" " , para obter apenas o número de mensagens:
-
-fsinalizador usado para campos e-f2seleciona apenas o segundo campo de "messages 2 new" -
-d" "com um espaço aqui é usado para o delimitador de campo.
Em seguida, depois de executar a segunda linha, temos o número de novas mensagens não lidas, ou seja: 2 aqui.
Nesta linha NewMail # call NewMail function , chamamos a função NewMail .
Com essa condição if , eu verifico se você tem novos e-mails. Em seguida, o prompt de comando será alterado e mostrará: "[Hi, alex. you have # new mail(s)]" antes do prompt. Se você não tiver novos e-mails, o prompt de comando não será alterado.
if [ -n "$UNREAD" ]; then
PS1="[Hi, alex. you have $UNREAD new mail(s)] $PS1"
fi
-n flag com [ -n "$UNREAD" ] verifica se o comprimento de UNREAD não é zero.
PS1 define seu prompt de comando que é configurado no arquivo .bashrc em seu diretório inicial. Isto é o que nós abrimos / editamos este arquivo. Então edito isso para incluir a contagem de mensagens não lidas antes do seu prompt de comando. Veja:
PS1="[Hi, alex. you have $UNREAD new mail(s)] $PS1"
Aqui está a captura de tela, se eu tiver novos e-mails:
E se eu não tiver nenhum email novo:
É isso. Basta copiar e colar o script no final do seu arquivo ~/.bashrc .