Você não pode se livrar dele e não há motivo para removê-lo de qualquer maneira. Isso vem do bash verificar se a entrada está vindo de um terminal (ele chama isatty ). Ele não usa essas informações no seu caso, apenas quando várias opções são passadas. Se você está curioso sobre os detalhes, leia o código-fonte ( read_builtin function em builtins/read.def ).
O fato de que o TCGETS ioctl retorna ENOTTY é como o aplicativo pode dizer que a entrada não é um terminal. É esperado. Só porque uma função retorna um status de erro não significa que algo esteja errado.