使用 sudo 超时信息更新 Zsh 提示符

使用 sudo 超时信息更新 Zsh 提示符

我希望我的 Zsh 提示显示我的sudo凭据是否已缓存。到目前为止我所拥有的应该有助于解释我想要实现的目标。

function sudo-warning {
    if sudo -nl &>/dev/null; then
        echo -n " %{${fg[red]}%}

答案1

这似乎对我来说可以判断是否达到超时:

sudo-expired() [[ $(
  trap "" XFSZ
  limit filesize 0
  LC_ALL=C sudo -n true 2>&1) = *"password is required" ]]

也就是说,将文件大小限制设置为 0 会使时间戳文件的更新失败,但只要我们不让该限制终止sudo,我们仍然能够判断是否需要密码。

像你一样使用(有一些简化):

sudo-warning()
  if sudo-expired; then
    echo '%F{blue}

相关内容