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 echowhich echo这可能会导致一些混乱。
| 归档时间: |
|
| 查看次数: |
93383 次 |
| 最近记录: |