Wir haben einen Arduino Yun Rev 2 mit Extroot über die YunDiskExpander-Skizze auf einer 32 GB SanDisk-microSD eingerichtet, die so partitioniert ist, dass 512 MB für das Extroot zur Verfügung stehen.
[
Merkwürdigerweise werden die Ergebnisse jedoch immer, wenn wir ls verwenden, mit einer Ziffer (normalerweise 1
), ;
zwei weiteren Ziffern (normalerweise 34
) und dem Buchstaben eingeleitet, m
und dann erhalten wir den Datei- oder Ordnernamen, der dann immer [m
angehängt wird. Dies scheint auch bei jedem Zeichen aufzutreten, wenn vim auf dem Arduino ausgeführt wird.
Wir greifen über den öffentlich verfügbaren seriellen Monitor als Terminalskizze darauf zu. Diese unerwarteten Zeichen behindern die Entwicklung erheblich, daher wäre jede Unterstützung sehr willkommen.
Antwort1
Die von Ihnen beschriebenen Dinge sind (Teile von)Escape-Sequenzenverantwortlich für die Änderung der Vordergrundfarbe von Text. In meinem Debian ls
kann die folgende Beispielausgabe generiert werden:
^[[01;34mfoobar^[[0m
wobei ^[
ein einzelnes Zeichen repräsentiert: Escape-Zeichen ( 0x1b
). Terminals, die dies unterstützen, sollten nach dem Empfang solcher Daten foobar
in Blau drucken. Sie haben keine Nullen erwähnt und meine Tests zeigen, dass das ^[[1;34mfoobar^[[m
auch funktioniert, also ls
generiert Ihr wahrscheinlich die letztere Form.
ls
versucht, seine Ausgabe zu färben, aber es sieht so aus, als ob Escape-Zeichen aus irgendeinem Grund bei der Übertragung verloren gehen oder sie korrekt übertragen werden, Ihr Terminal sie jedoch ignoriert (weder druckt ihre Darstellung noch erkennt es nachfolgende Steuersequenzen). Im Endeffekt sehen Sie:
[1;34mfoobar[m
Pure ls
ohne Optionen sollte keine Farben verwenden,POSIXsagt nichts über Farben aus. Implementierungen bieten Ihnen jedoch möglicherweise die Möglichkeit, die Ausgabe einzufärben, und es ist üblich, dass für ls
ein Alias für ist ls --color=auto
. Normalerweise funktioniert das gut und Benutzer wissen möglicherweise nicht einmal, dass der Alias beteiligt ist. Überprüfen Sie, ob dieses Szenario auf Ihren Fall zutrifft: rufen Sie auf alias ls
. Ich gehe davon aus, dass dies der Fall ist.
Mögliche Lösungen:
- überschreibe die Option bei Bedarf:
ls --color=no
; - Umgehung des Alias bei Bedarf:
command ls
; - zerstöre den Alias (einmal pro Shell-Sitzung):
unalias ls
; - Finden Sie heraus, in welchem Startskript der Alias definiert ist und löschen Sie die entsprechende Zeile oder kommentieren Sie sie aus. Dies ist eine dauerhafte Lösung.