Seit einer Weile habe ich dieses anhaltende Problem auf allen meinen Terminals, angefangen bei Gnome-Standard und Tilda, die ich beide verwende, bis hin zu denen, die ich gerade kurz gewirbelt habe, wobei meine Eingabe den Anfang einer eigenen Zeile überschreibt, wenn es sein sollte Zeilenumbruch und nur in der nächsten Zeile.
Wenn Sie Strg-A drücken, um zum Zeilenanfang zurückzukehren, werde ich stattdessen irgendwo in der Zeile vor meiner ersten Eingabezeile zurückgebracht, von der aus jede weitere Eingabe nur sehr seltsam wird.
Da dies eine wirklich schlechte Erklärung ist und schwer zu visualisieren ist, sieht es folgendermaßen aus:
Weiß jemand was das ist? Dies geschieht nicht nur unter bestimmten Umständen, es ist eine permanente Sache, die von Anfang bis Ende jeder Sitzung in jedem Terminalemulator vorhanden ist.
Ausgabe von printf "%s\n" "$PS1" "$COLUMNS"
:
leod:~$ printf "%s\n" "$PS1" "$COLUMNS"
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
80
Ausgabe von stty -a
:
leod:~$ stty -a
speed 38400 baud; rows 11; columns 140; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z;
rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
test
das Terminal in einem instabilen Zustand verlässt. Wenn es ein Skript ist, können Sie das in Ihre Frage aufnehmen? Was passiert, wenn Sie ohne vorherige Ausführung mit dem Schreiben beginnen test
und der Text normal umgebrochen wird?
stty -a
bitte auch die Ausgabe von sehen?
type -a test
stattdessen.
printf "%q\n" "$PS1"
? Es kann rohe Escape-Sequenzen in PS1 geben, die %s
intakt bleiben (was z. B. die Farbe hin und her ändern kann, was in der Ausgabe unbemerkt bleibt). %q
zitiert jedes nicht druckbare Zeichen in lesbarer Form.
printf "%s\n" "$PS1" "$COLUMNS"
Sie bitte die Ausgabe von .