Кодирование шрифта в Терминале

Равняется оператору, ничего не делает в этом случае.

$S1=$S2 выражения оценивает к фактической строке, со значениями S1 и S2 на месте, эффективно строкового литерала "foo=bar".

Так как этот строковый литерал не является пустым, оператор

if [ "foo=bar" ];

оценивает к истинному, и тело, если оператор выполняется.

4
05.03.2012, 03:22
2 ответа

Сначала удостоверьтесь, что ОС, которую Вы выполняете, настроена для поддержки UTF-8. По-моему, они должны все поддерживать UTF-8 по умолчанию, но некоторые не делают. Не зная, какое распределение Вы используете, трудно дать подробный ответ.

На Ubuntu Вы отредактировали бы файл /etc/default/locale и удостоверьтесь это LANG="en_US.UTF-8" там (если Вы используете другой язык затем en_US может быть что-то еще, но UTF-8 должен ли быть). Если это не, изменитесь/добавьте его и работайте locale-gen, затем перезапустите эмулятор терминала, и Вы сделаны.

3
27.01.2020, 20:58
  • 1
    я выполняю ArchLinux и вывод локали cmd: локаль: не Может установить LC_CTYPE на локаль по умолчанию: Никакая такая локаль файла или каталога: не Может установить LC_MESSAGES на локаль по умолчанию: Никакая такая локаль файла или каталога: не Может установить LC_ALL на локаль по умолчанию: Никакой такой файл или каталог LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LC_NUMERIC = "en_US.UTF-8" LC_TIME = "en_US.UTF-8" LC_COLLATE = "en_US.UTF-8" LC_MONETARY = "en_US.UTF-8" LC_MESSAGES = "en_US.UTF-8" LC_PAPER = "en_US.UTF-8" LC_NAME = "en_US.UTF-8" LC_ADDRESS = "en_US.UTF-8" LC_TELEPHONE = "en_US.UTF-8" LC_MEASUREMENT = "en_US.UTF-8" LC_IDENTIFICATION = "en_US.UTF-8" –  Ben D 05.03.2012, 11:24

Только, чтобы удостовериться, что Ваше терминальное кодирование установлено использовать UTF-8, можно выполнить следующую команду:

locale charmap  # UTF-8
0
27.01.2020, 20:58

Теги

Похожие вопросы