2013-04-15 10 views
9

Mit Bash können Sie printf mit Hex-CodesPrint Unicode-Zeichen

\xHH byte with hexadecimal value HH (1 to 2 digits) 
\uHHHH Unicode (ISO/IEC 10646) character with hex value HHHH (4 digits) 

Beispiel

$ printf '\x26' 
& 

verwenden jedoch das Unicode-Beispiel nicht als

$ printf '\u0026' 
\u0026 

Meine Bash Version erwartet nicht gedruckt

$ echo $BASH_VERSION 
4.1.10(4)-release 

Antwort

7

Welche Version von bash verwenden Sie (echo $BASH_VERSION oder bash --version)? Die Unicode-Escapes funktionieren in bash 4.2, aber nicht 3.2.48. Ich vermute, dass Support in bash 4.0 hinzugefügt wurde.

Update: Ich kann bestätigen, dass es nicht funktioniert in bash 4.1.2. Diese Funktionalität scheint in bash 4.2 hinzugefügt worden zu sein.

Update 2: Von der release notes for bash 4.2:

d. $'...', echo und printf verstehen \uXXXX und \UXXXXXXXX escape Sequenzen.

+0

In älteren Versionen ist es in Ordnung, ** $ printf "% s" "%" ** zu verwenden, um das **% ** - Symbol zu drucken? –

+1

Ich nehme an, das wäre in Ordnung, genauso wie 'printf" %% "'. – chepner

+0

Danke, es funktioniert. –