Sum*_*Tea 17 bash shell shell-script newlines echo
我hexdump
像这样转储一个字符串2031 3334 2e30 0a32 2032 3331 302e 000a
。很明显,这0x0a
是换行符,但是,当我尝试回显这个字符串时,我总是得到1 430.2 2 13.0
- 新行被替换为空格,即使我使用了-e
标志。
可能是什么问题?尾矿会\0
破坏输出吗?有没有其他方法可以打印0x0a
新行?
谢谢和最好的问候。
Izz*_*zzy 27
echo
命令的换行符是“\n”。以下面的例子为例:
echo -e "This is line 1\nThis is line 2"
Run Code Online (Sandbox Code Playgroud)
会导致输出
This is line 1
This is line 2
Run Code Online (Sandbox Code Playgroud)
“-e”参数在这里很重要。
POSIX 7 说你不能
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html
-e
未定义,反斜杠是实现定义的:
如果第一个操作数是 -n,或者如果任何操作数包含 <反斜杠> 字符,则结果是实现定义的。
除非您有可选的 XSI 扩展。
所以printf
改用:
格式操作数应用作 XBD 文件格式表示法中描述的格式字符串 [...]
该文件格式符号:
\n <newline> 将打印位置移动到下一行的开头。
还要记住,Ubuntu 15.10 和大多数发行版都实现echo
了:
help echo
which echo
这可能会导致一些混乱。
归档时间: |
|
查看次数: |
93383 次 |
最近记录: |