2013-04-15 21 views
9

プリントUnicode文字

$ printf '\u0026' 
\u0026 

マイバッシュバージョン予想通りUnicodeの例は印刷されません。ただし、16進コードとprintf

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

$ printf '\x26' 
& 

を使用することができます

$ echo $BASH_VERSION 
4.1.10(4)-release 

答えて

7

bashのバージョンは(echo $BASH_VERSIONまたはbash --version)ですか? Unicodeエスケープはbash 4.2で動作しますが、3.2.48では動作しません。私はbash 4.0にサポートが追加されたと思う。

更新:それが動作しないことを確認できますbash 4.1.2。この機能は、bash 4.2で追加されたようです。

アップデート2:

D:release notes for bash 4.2から。 $'...',echoおよびprintfは、\uXXXXおよび\UXXXXXXXXエスケープ シーケンスを理解する。

+0

**%print ** "%s" "%" **を使用して**%**シンボルを印刷しても問題ありませんか? –

+1

私はそれが 'printf" %% "'と同様に良いと思います。 – chepner

+0

ありがとう、それは動作します。 –