[英]How do I write non-ASCII characters using echo?
如果您關心可移植性,您將刪除並使用 :
printf '\012'
使用
echo -e "\012"
在我的終端上,
printf '\012' >>output.txt
適用於 ascii 字符的八進制表示和相應的十六進制:
printf '\xA' >>output.txt
命令
echo -en '\012' >>output.txt
但是,不能正常工作。 似乎只有十六進制可以與 echo -e 一起使用。 -n 從 echo 中刪除默認的額外換行符。
您可以將 ANSI-C Quoting 與echo
:
echo $'\012' # octal
echo $'\x0a' # hex
我用非 ASCII 來表示 Unicode,至少在我的情況下,但是printf "\\x##"
對於我的 2 字節解決方案來說還不夠,所以我使用了這個稍微不同的語法:
> printf "\u25ba"
►
echo -e 'toto\010\010ti' # OUTPUTS: toti
echo -e '\x41' # OUTPUTS: A
echo -e '\u03B1' # OUTPUTS: α
echo -e '\U1F413 <= \U1F1EB\U1F1F7' # OUTPUTS 🐓 <= 🇫🇷
從man bash
> /BUILTIN/ > /^ *echo/
\0nnn the eight-bit character whose value is the octal value nnn (zero to
three octal digits)
\xHH the eight-bit character whose value is the hexadecimal value HH (one
or two hex digits)
\uHHHH the Unicode (ISO/IEC 10646) character whose value is the hexadecimal
value HHHH (one to four hex digits)
\UHHHHHHHH
the Unicode (ISO/IEC 10646) character whose value is the hexadecimal
value HHHHHHHH (one to eight hex digits)
man ascii
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.