![zsh 电子邮件通知(在 maildir 中)](https://linux22.com/image/24866/zsh%20%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E9%80%9A%E7%9F%A5%EF%BC%88%E5%9C%A8%20maildir%20%E4%B8%AD%EF%BC%89.png)
如何修改以下内容,以便它读取 maildir 而不仅仅是邮箱格式?
typeset -a mailpath
for i in ~/Mail/Lists/*(.); do
mailpath[$#mailpath+1]="${i}?You have new mail in ${i:t}."
done
目前,我得到:
/home/XXX/.zshrc:77: no matches found: /home/XXX/.Mail/Lists/*(.)
答案1
new
您需要枚举 下调用的目录~/Mail/Lists/
。这只是几个问题全局限定符:/
匹配目录,N
如果没有匹配,扩展可能为空。使用${i:h:t}
显示邮箱名称而不是new
。
for i in ~/Mail/Lists/**/new(/N); do
mailpath+=("${i}?You have new mail in ${i:h:t}.")
done
您可以使用e
glob 限定符使其成为一行,尽管是一个神秘的行。
maildirs+=(~/Mail/Lists/**/new(/Ne\''REPLY="${REPLY}?You have new mail in ${REPLY:h:t}."'\'))