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 "$-"'