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:
-
-f
sinalizador usado para campos e-f2
seleciona 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
.