Estoy usando OS X y quiero saber si hay algún mensaje no leído en mi Mail.app? Quiero poner ese número en mi indicador de shell.
¿Cómo lo hago?
Primero, configure su solicitud para realizar sustituciones como se explica aquí: ¿ Obtener función en PS1 (Zsh)?
Simplemente agregue lo siguiente en su .zshrcarchivo.
setopt PROMPT_SUBST
Luego, busque un AppleScript que cuente su correo no leído, por ejemplo, este de Geeklets de Matt Swain . Descargue el .scptarchivo y colóquelo en algún lugar, por ejemplo ~/Scripts/mail_count.scpt.
Tenga en cuenta que Mail.app debe estar ejecutándose para que todo esto funcione. En su .zshrc, cree una función que llame al AppleScript:
function mail_count {
osascript ~/Scripts/mail_count.scpt
}
Finalmente, redefina su solicitud en función de la nueva función. El siguiente sería el enfoque más básico, pero siéntase libre de agregar sus propias variables según sea necesario:
PROMPT='$(mail_count) '
Si no desea meterse con su solicitud o usar uno de los estilos oh-my-zsh, o incluso el promptinitmódulo, también puede usar la precmd()función, en la que define cualquier cosa que deba ejecutarse antes de ejecutar otro comando . En ese caso, no necesitarías la PROMPT_SUBSTopción.
precmd() {
mail_count
}
Cualquiera que sea el método que utilice, su recuento de correo no leído se generará en texto sin formato. Si desea cambiar los mensajes, eche un vistazo a la fuente del .scptarchivo y modifíquelo en consecuencia.

unread count of every mailboxcomo se explica aquí .Encontré esto más eficiente.
fuente