Я вже знаю, що можу використовувати щось подібне echo -ne "xe4xb8xadxe6x96x87"
для друку слів unicode.
Але це жорстко закодовано. Як я можу використовувати його для змінної?
Ось моя скрипт:
text=($1)
for i in "${text[@]}";do
#debug
echo "current word is ($i)"
#code use $i goes here
done
Вихід:
поточне слово: (xe4xb8xadxe6x96x87)
Пряме використання echo -ne $i
не працює.
PS: Якщо вам цікаво, чому парам вводу скрипту такий дивний, він з'явився зі скрипту Perl CGI. Можливо, сценарій Perl недостатньо написаний, але я не хочу заглиблюватися в підтримку Unicode Perl CGI зараз.
Відповіді:
1 для відповіді № 1Він повинен працювати з Bash і echo -e
. Просто переконайтеся, що ви дійсно використовуєте Bash (а не, наприклад, на Ubuntu Linux, оболонку тире):
$ cat script
#!/bin/bash
foo="xe4xb8xadxe6x96x87"
echo -e "$foo"
$ ./script
中文
Також переконайтесь, що ваше середовище (локаль) налаштоване на використання utf-8, наприклад, з LANG=en_US.utf-8
або інший код країни.