Essencialmente, você só precisa substituir a condição if
por
if dpkg --get-selections | grep -q "^$pkg[[:space:]]*install$" >/dev/null; then
Não é possível usar dpkg-query
, porque ele retorna true também para pacotes removidos, mas não eliminados.
Sugiro também verificar o código de saída de apt-get
antes de fornecer a mensagem de sucesso:
if apt-get -qq install $pkg; then
echo "Successfully installed $pkg"
else
echo "Error installing $pkg"
fi