Este tópico sobre E / S não bloqueantes no bash pode ajudar.
Ele sugere o uso de stty
e dd
.
Ou você pode usar o bash
read
incorporado com a opção -t 0
.
# do your stuff
# discard rest of input before exiting
while read -t 0 notused; do
read input
echo "ignoring $input"
done
Se você quiser fazer isso apenas se o usuário estiver em um terminal, tente o seguinte:
# if we are at a terminal, discard rest of input before exiting
if test -t 0; then
while read -t 0 notused; do
read input
echo "ignoring $input"
done
fi