Você pode verificar se a instância bash atual é interativa . No entanto, isso pode não funcionar para outras camadas.
Agora, se você criar um script de proxy, poderá encapsular a decisão de como iniciar sudo . Nomeie-o como sudoAskpass.sh , por exemplo:
#!/bin/bash
BASH_PARAMETERS="$1"
shift
case "${BASH_PARAMETERS}" in
*i*)
sudo -A "$@"
;;
*)
sudo "$@"
;;
esac
exit $?
Você precisa alias sudo , no entanto, como dentro do script, o parâmetro $- indica um shell não interativo:
alias sudo='/path/to/sudoAskpass.sh "$-"'