Uma maneira mais simples seria
read -t 80 -n 1 -s -p "Hit a key to continue"
Você não verá o tempo restante. Se você quiser ver o tempo restante, você pode usar um script mais complexo envolvendo um subshell:
( for i in {80..0}; do
echo Wait for $i seconds or press any key;
sleep 1;
done )&
read -t 80 -n 1 -s; kill $!
Indiscutivelmente, o comando kill
é um pouco inseguro, embora seja realmente improvável que o subshell falhe em adormecer e termine cedo, possibilitando que um processo inocente reutilize seu PID e seja morto.