bash シェルで奇妙な疑問符が表示される

bash シェルで奇妙な疑問符が表示される

RHEL7 サーバーについて奇妙な点に気づきました。シェルでは常に疑問符が返され、テキストの一部を囲みます。次のようになります。

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

あるいはこれ:

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

これは正常ですか?

Ubuntu 16.04 デスクトップから RHEL7 サーバーに ssh 接続し、screen を使用しています。これが違いの原因でしょうか?

答え1

rm端末がサポートしていない文字を表示しようとしています。これは、ロケール設定が間違っていますLC_CTYPE。具体的には です。LC_CTYPE環境変数はターミナル エミュレータによって設定され、.profileやなどのスクリプトによって変更されることはありません.bashrc

screen を実行していることを示します。あるロケールで screen セッションを開始し、別のロケールで接続すると、screen はサポートされていない文字を に変換します?。そのウィンドウで実行しているシェルなど、すでに実行中のアプリケーションのロケール設定を変更することはできません。ほとんどのアプリケーションでは、ロケール設定をオンザフライで変更する機能をサポートしていません。できるシェルで変数を設定して実行します。端末が何を期待しているかを確認するには、 screen セッションに接続する前にLC_CTYPEの値を出力します。LC_CTYPE

面倒な手間を省くには、どこでも一貫したロケール設定を採用してください。現在では UTF-8 がどこでも標準となっており、他のエンコードは古いアプリケーションやデバイスとの互換性のためだけに使用してください。

関連情報