Eu consegui fazer isso
echo -n " command "> / dev / tty1
As letras aparecem e o cursor se move, mas são "fantasmas" - se você pressionar Enter, nada acontece (eles não estão em stdin).
Editar:
No meio da captura de tela abaixo, você vê por que vejo o uso disso. (A linha com uma legenda vermelha, logo abaixo da linha com uma legenda amarela.) Como está agora, você não está realmente "editando" o texto da nota; você é solicitado a escrever um novo texto, que substituirá o texto da nota que você está (na verdade) não editando. Assim, pensei que poderia ser remediado simplesmente colando o texto antigo no tty: se o usuário pressionar enter, nenhuma modificação será feita. (Este programa está em Perl / MySQL, mas pensei que seria mais interessante solicitar uma solução geral do que "como faço isso no Perl".)
Edição 2:
Aqui está o código Perl, que usa o código C abaixo (funciona exatamente como pretendido), bem como uma nova captura de tela - espero que isso esclareça as coisas além da dúvida :) Novamente, olhe para o meio da captura de tela, onde a edição é feita para o texto da nota - desta vez, o texto antigo está lá; por exemplo, se você apenas deseja corrigir um erro de digitação, não precisará digitar novamente o texto inteiro da nota.
my $edit_note_text = $edit_note_data[2];
print BOLD, RED, " new text: ", RESET;
system("writevt /dev/tty \"$edit_note_text\"");
my $new_text = <$in>;
$new_text = fix_input($new_text);
my $set_text = "UPDATE notes SET note = \"$new_text\" WHERE id = $edit_note_id";
$db->do($set_text);