Das habe ich geschafft
echo -n " Befehl "> / dev / tty1
Die Buchstaben erscheinen und der Cursor bewegt sich, aber sie sind "Geister" - wenn Sie drücken Enter, passiert nichts (sie sind nicht im Standard).
Bearbeiten:
In der Mitte des folgenden Screenshots sehen Sie, warum ich die Verwendung dieses sehe. (Die Zeile mit der roten Beschriftung, direkt unter der Zeile mit der gelben Beschriftung.) Sie bearbeiten den Hinweistext derzeit nicht wirklich. Sie werden lediglich aufgefordert, einen neuen Text zu schreiben, der den Text der Notiz ersetzt, die Sie (nicht wirklich) bearbeiten. Daher dachte ich, es könnte durch einfaches Einfügen des alten Textes in das tty behoben werden: Wenn der Benutzer die Eingabetaste drückt, wird keine Änderung vorgenommen. (Dieses Programm ist in Perl / MySQL, aber ich dachte, es wäre interessanter, nach einer allgemeinen Lösung zu fragen, als "wie mache ich das in Perl".)
Bearbeiten 2:
Hier ist der Perl-Code, der den C-Code unten verwendet (funktioniert genau wie vorgesehen), sowie ein neuer Screenshot - dies wird hoffentlich die Dinge zweifelsfrei klären :) Schauen Sie sich noch einmal die Mitte des Screenshots an, in der die Bearbeitung erfolgt zum Notizentext - diesmal ist der alte Text vorhanden. Wenn Sie beispielsweise nur einen Tippfehler korrigieren möchten, müssen Sie nicht den gesamten Notizentext erneut eingeben.
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);