Я использую превосходный todo.sh Gina Trapiani для организации моего списка ожидающих выполнения задач.
Однако будучи датчанином, было бы хорошо, если бы сценарий принял специальные датские символы как ø и æ.
Я - абсолютный UNIX-n00b, таким образом, это была бы большая справка, если кто-либо мог бы сказать мне, как зафиксировать это!:)
Что показывает эта команда?
locale
Она должна показать Вам что-то подобное:
LC_CTYPE="da_DK.UTF-8"
LC_NUMERIC="da_DK.UTF-8"
LC_TIME="da_DK.UTF-8"
LC_COLLATE="da_DK.UTF-8"
LC_MONETARY="da_DK.UTF-8"
LC_MESSAGES="da_DK.UTF-8"
LC_PAPER="da_DK.UTF-8"
LC_NAME="da_DK.UTF-8"
LC_ADDRESS="da_DK.UTF-8"
LC_TELEPHONE="da_DK.UTF-8"
LC_MEASUREMENT="da_DK.UTF-8"
LC_IDENTIFICATION="da_DK.UTF-8"
LC_ALL=
Если нет, то Вы можете попробовать сделать это перед тем, как запустить Ваш скрипт:
LANG=da_DK.UTF-8
Вы не говорите, что происходит, когда Вы запускаете скрипт, и он сталкивается с этими символами. Они есть в файле todo? Вводятся ли они в приглашение? Есть ли сообщение об ошибке? Что-то выводится вместо ожидаемого вывода?
Попробуйте это и посмотрите, что вы получите:
read -p "Enter some characters" string
echo "$string"
Медленно, мир Unix переходит из ASCII и других региональных кодировок в UTF-8. Вам необходимо запустить терминал UTF, такой как современный xterm или шпаклевка.
В вашем ~/.bash_profile установите язык как один из вариантов UTF-8.
export LANG=C.UTF-8
or
export LANG=en_AU.UTF-8
etc..
Затем вы должны уметь писать символы UTF-8 в терминале и включать их в bash скрипты.
#!/bin/bash
echo "UTF-8 is græat ☺"
Смотрите также: https://serverfault.com/questions/11015/utf-8-and-shell-scripts