我希望我的 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}