答案 0 :(得分:29)
如果你关心可移植性,你将放弃 echo 并使用 printf(1):
printf '\012'
答案 1 :(得分:25)
使用
echo -e "\012"
答案 2 :(得分:12)
在我的终端上,
printf '\012' >>output.txt
适用于ascii字符的八进制表示和相应的十六进制:
printf '\xA' >>output.txt
命令
echo -en '\012' >>output.txt
但是,功能不正常。只有十六进制似乎与echo -e一起使用。 -n从echo中删除默认的额外换行符。
答案 3 :(得分:1)
我使用非ASCII来表示Unicode,至少在我的情况下,但printf "\x##"
对于我的2字节解决方案来说还不够,所以我使用了稍微不同的语法:
> printf "\u25ba"
►
答案 4 :(得分:0)
您可以在echo
中使用ansi-c引用:
echo $'\012' # octal
echo $'\x0a' # hex
答案 5 :(得分:0)
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