Os prompts de read e select devem ir para Erro Padrão, pois são prompts de interação do usuário e não saída real . Isso permite que você execute tool.sh > tool.out e ainda use read e select para coletar informações do usuário sem "contaminar" a saída real.
A Saída Padrão é a saída típica de um programa, idealmente de tal forma que poderia ser canalizada para a Entrada Padrão de outra, sem problemas, nem confusão.
É também por isso que curl , por exemplo, apresenta seu progresso de download no Erro Padrão, em vez da Saída Padrão; você pode curl http://www.example.com/path/to/file > file e somente o conteúdo de file é exibido (e, portanto, redirecionado para file , enquanto os dados informativos são exibidos usando o erro padrão.