Isso parece funcionar para eu saber se o tempo limite foi atingido:
sudo-expired() [[ $(
trap "" XFSZ
limit filesize 0
LC_ALL=C sudo -n true 2>&1) = *"password is required" ]]
Ou seja, defina o limite do tamanho do arquivo como 0 para que a atualização do arquivo de timestamp falhe, mas, desde que não deixe esse limite matar sudo
, ainda poderemos saber se uma senha foi necessária ou não.
Usado como o seu (com algumas simplificações):
sudo-warning()
if sudo-expired; then
echo '%F{blue}