Substitua sudo
por gksudo --
no seu script, assim:
gksudo -- sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
Isso abrirá uma janela de diálogo simples para solicitar sua senha, em vez de solicitá-la no STDERR, que não está conectado a um terminal se você executar o script a partir de sua área de trabalho.
Em versões mais recentes do Ubuntu, gksudo
pode não estar mais pré-instalado. Se não funcionar, você terá que instalar o pacote gksu
primeiro, usando este comando:
sudo apt-get install gksu