当我在Mac上测试bash脚本时,你知道\b
是DEL函数:
$ echo -e "\\ 2\b"
\ 2
$ echo -e "\\ 2\b123"
\ 123
$ echo -e "\\ 2\b "
\
我发现如果\b
作为最后一个字符不起作用,请参阅第一个案例。
但如果它后面有空格或其他字符,它就会起作用。
修改
抱歉,\b
不是DEL,它是退格,谢谢@Evert
答案 0 :(得分:5)
#toast-container > div {
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
filter: alpha(opacity=100);
}
不代表DEL,它代表退格。这会将终端光标向后移动一个空格,但不会对已经退格的字符执行任何操作。如果你在退格字符之后打印一些内容,那么它将被写在前一个字符上(有效地删除它),但如果你不这样做,它就会保留在屏幕上。如果您想真正删除该字符,请发送退格+空格+退格(即\b
)。
"\b \b"
不是打印这样的序列的好方法。有些版本将转义序列转换为它们所代表的字符,但有些版本只是按字面打印转义符。当Mac OS X v10.5问世时,我不得不重写一堆我的脚本,并且行为与我预期的不同。从那时起,我总是首选echo
来表达任何不平凡的事情。它比printf
复杂一点,因为第一个参数被视为格式字符串,用于控制其余参数的打印方式。此外,它不会像echo
那样在结尾处自动添加换行符,因此如果您需要,则必须手动添加(echo
}。
最后,我对包含转义序列的字符串使用单引号,因为在双引号中某些转义序列在被发送到命令之前由shell解释(是\n
还是echo
)。所以我的第二个例子就是这样:
printf