/ / Shell: drukuje słowo Unicode w zmiennej - linux, shell, unicode

Shell: wydrukuj słowo unicode w zmiennej - linux, shell, unicode

Wiem już, że mogę użyć czegoś takiego echo -ne "xe4xb8xadxe6x96x87" drukować słowa Unicode.
Ale jest na stałe. Jak mogę go użyć dla zmiennej?

Oto mój skrypt:

text=($1)
for i in "${text[@]}";do
#debug
echo "current word is ($i)"
#code use $i goes here
done

Wynik to:

obecne słowo to (xe4xb8xadxe6x96x87)

Bezpośrednio za pomocą echo -ne $i nie działa.

PS: Jeśli zastanawiasz się, dlaczego param skryptu jest tak dziwny, pochodzi on ze skryptu CGI Perla. Może skrypt Perla nie jest dobrze napisany, ale nie chcę teraz zagłębiać się w obsługę Unicode Perla CGI.

Odpowiedzi:

1 dla odpowiedzi № 1

Powinien działać z Bash i echo -e. Po prostu upewnij się, że naprawdę używasz Basha (a nie, na przykład, w Ubuntu Linux, powłoce dash):

$ cat script
#!/bin/bash
foo="xe4xb8xadxe6x96x87"
echo -e "$foo"

$ ./script
中文

Upewnij się również, że twoje środowisko (locale) jest skonfigurowane do używania utf-8, na przykład z LANG=en_US.utf-8 lub inny kod kraju.