Aqui está um esboço que pode funcionar um pouco melhor:
if apt-get update 2> /tmp/apt-get-errors
then
if grep -q "^W: Failed to fetch" /tmp/apt-get-errors
then
echo "success!"
else
echo apt-get failed to fetch
fi
else
echo "something went wrong
fi
rm /tmp/apt-get-errors
A idéia básica é pegar a saída stderr do apt-get em um arquivo, e então procurar esse arquivo por padrões conhecidos antes de declarar sucesso.
Poderia ser melhorado com o uso do mktemp e, possivelmente, com um melhor padrão grep, mas eu não tenho como testar o apt-get agora.