Respondendo a segunda parte da pergunta, como escrever mensagens enquanto espera no prompt sudo :
trap '2>/dev/null' CHLD
(sleep 5; echo; echo "New spam has just arrived!") &
MSGPID=$!
sudo -v
wait $MSGPID
trap - CHLD
sleep 5 no subshell simula a mensagem que chega de forma assíncrona. O primeiro echo apenas garante que a mensagem não acabe ao lado do prompt Password: . Ele também funciona ao gravar em stderr em vez de stdout .
O primeiro trap está lá para eliminar as mensagens sobre o status do trabalho em segundo plano. waitpid e o segundo trap cancelam os efeitos do primeiro trap .
Coisas ruins acontecem se o comando no subshell sair antes de ter a chance de retornar um PID significativo (pode acontecer em alguns SOs, esperamos que não seja muito grande atualmente).