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.