Merkwürdige Fragezeichen in der Bash-Shell

Merkwürdige Fragezeichen in der Bash-Shell

Mir ist etwas Merkwürdiges bei unseren RHEL7-Servern aufgefallen: In der Shell werden immer Fragezeichen zurückgegeben, die Teile des Textes einschließen. Etwa so:

rm file.txt
rm: remove regular file ?file.txt??

Oder dieses:

rm 886- rm: cannot remove ?886-?: No such file or directory

Ist das normal?

Ich führe per SSH von einem Ubuntu 16.04-Desktop eine Verbindung zu den RHEL7-Servern durch und verwende den Bildschirm. Könnte das die Ursache für die Unterschiede sein?

Antwort1

rmversucht, ein Zeichen anzuzeigen, das Ihr Terminal nicht unterstützt. Das ist ein Zeichen dafür, dass IhrGebietsschemaEinstellungen sind falsch, insbesondere LC_CTYPE. Die LC_CTYPEUmgebungsvariable sollte vom Terminalemulator festgelegt und nicht durch Skripts wie .profileoder geändert werden .bashrc.

Sie geben an, dass Sie screen ausführen. Wenn Sie die screen-Sitzung in einem Gebietsschema gestartet haben und sie in einem anderen Gebietsschema verbinden, übersetzt screen nicht unterstützte Zeichen in ?. Es kann die Gebietsschemaeinstellung in bereits laufenden Anwendungen wie der Shell, die Sie in diesem Fenster ausführen, nicht ändern – die meisten Anwendungen unterstützen keine Änderung der Gebietsschemaeinstellungen im laufenden Betrieb. Siedürfentun Sie dies in der Shell, indem Sie die LC_CTYPEVariable festlegen. Um zu sehen, was Ihr Terminal erwartet, drucken Sie den Wert aus, LC_CTYPEbevor Sie eine Verbindung zur Bildschirmsitzung herstellen.

Um sich Kopfschmerzen zu ersparen, sollten Sie überall einheitliche Gebietsschemaeinstellungen verwenden. Heutzutage ist UTF-8 überall der Standard, jede andere Kodierung sollte nur aus Kompatibilitätsgründen mit älteren Anwendungen oder Geräten verwendet werden.

verwandte Informationen