[Eu ainda gostaria de saber se existe uma resposta melhor.]
Eu encontrei uma maneira que funciona, e o prompt será mantido em uma única linha:
no final do seu ~/.bashrc
, adicione isto:
function FUNCsudoOn() {
if sudo -n uptime 2>/dev/null 1>/dev/null; then
echo -ne "\E[0m\E[93m\E[41m\E[1m\E[5m SUDO \E[0m";
#echo #without newline, the terminal seems to bugout with lines that are too big... discomment this if you find any problems...
fi;
}
function FUNCpromptCommand () {
FUNCsudoOn
}
export PROMPT_COMMAND=FUNCpromptCommand
#export PS1="\'FUNCsudoOn\'$PS1" #this also works, use instead of PROMPT_COMMAND
EDIT: Eu achei que sudo -n uptime
atualizará o tempo limite do sudo, então toda vez que você apertar a tecla Enter, o tempo do sudo será atualizado ... Isso torna inútil o tempo restante, pois sempre será o configurado, com um padrão de 15min ...
e para encontrar a melhor formatação de cores para seu gosto, você pode usar ScriptEchoColor com a opção --escapedchars
como:
echoc --escapedchars "@{nRlyo} SUDO " #that outputs below...
echo -e "\E[0m\E[93m\E[41m\E[1m\E[5m SUDO \E[0m"
para apenas interromper a remoção piscando \E[5m
como em \E[0m\E[93m\E[41m\E[1m SUDO \E[0m