Você pode ler em /dev/tty
ou em /dev/stdin
.
getline choice < "/dev/tty"
/dev/tty
é bastante onipresente (mesmo um dos poucos, junto com /dev/null
e /dev/console
a serem exigidos pelo POSIX), /dev/stdin
é menos comum, mas pelo menos o GNU awk reconheceria como significando stdin mesmo que o sistema não tenha tal dispositivo / arquivo especial.