Что показывает эта команда?
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"