首页 >

Linux下shell编程中echo和printf哪个更强大 – CSS – 前端,如何使用css设计

css hr是什么意思,css 边框 bold,css选取中间元素,css盒子怎么填颜色,css 粗字体变正常,css输入框去掉线,如何使用css设计Linux下shell编程中echo和printf哪个更强大 - CSS - 前端,如何使用css设计

经理认为:

如果shell的环境是bash,那么在一般的使用过程中,echo和printf的功能相差无几。echo也可以通过-e参数来实现扩展格式的输出。但是如果一定要分个高下的话,那么printf肯定是要更胜一筹的。从前的bash版本中printf不是内置命令,调用时的开销要比echo略大,但现在最近的Linux发行版中printf已经是内置的命令了,并且printf与C版本的printf几乎是完全一样的,所以printf在功能和效率上都要更加强大。

echo与printf的功能差异

一是末尾换行符以及对转义字符的处理不一样:echo命令的帮助页中描述其功能的第一句话就是:将它后面的参数输出到标准输出流。

printf命令的帮助页描述是:在 FORMAT 的控制下格式化并打印 ARGUMENTS 参数。

echo在打印自己的参数的时候,会进行自动的换行,而printf不会:

另外就是对转义字符的处理也不一样:

如果printf需要输出后换行,则必须在末尾加上换行符:

二是打印出来的字符结尾不一样:echo打印的字符不以EOF结尾,printf打印的字符是以EOF结尾的。这个特性,在向某些端口发送数据的时候需要注意,使用echo发送数据的话,端口因为没有读到EOF字符所以会一直处于接收状态,造成发送超时或者失败;这个时候就需要使用printf。这一差别到现在不知是否有无改变,如果有知道的大神还请在评论区指点一下。

三是printf支持的格式化功能比echo更多:尽管echo可以通过-e参数实现对一些特殊字符的输出,并且也可以输出8\16进制的ASCII字符以及其它控制字符,但printf全部都能够支持,除此之外还可以实现左对齐右对齐等格式化输出。这是它比echo强大的主要原因。

echo与printf的性能差异

在早现版本的bash里,printf不是内置实现的,所以效率比较低。当前版本的bash已经内置了printf,所以效率有了很大提升。经理偶专门做了一下测试,分别调用echo和printf命令一百万次,看看用时长短:

从测试的结果来看,时间上都差不多,printf还稍微快了一些。

总结

echo和printf命令大家都比较常用,printf已经变成了内置实现,效率和功能都更加优秀。使用起来和C语言的版本基本相同,同时支持格式化输出、控制字符输出、多进制输出和字符颜色主题输出。并且在一些特殊场景下的兼容性更好,所以在输出语句的角度来讲,printf更加强大。

如果偶的回答对你有点价值,请莫忘点赞加关注,谢谢!欢迎在评论区发表各种意见。

本文为作者原创,严禁转载,违者必究。

css hr是什么意思,css 边框 bold,css选取中间元素,css盒子怎么填颜色,css 粗字体变正常,css输入框去掉线,如何使用css设计Linux下shell编程中echo和printf哪个更强大 - CSS - 前端,如何使用css设计


Linux下shell编程中echo和printf哪个更强大 - CSS - 前端,如何使用css设计
  • 综艺体字体写法 - CSS - 前端,css 颜色设置为 继承
  • 综艺体字体写法 - CSS - 前端,css 颜色设置为 继承 | 综艺体字体写法 - CSS - 前端,css 颜色设置为 继承 ...

    Linux下shell编程中echo和printf哪个更强大 - CSS - 前端,如何使用css设计
  • 一年级孩子如何安排其它课余时间 - CSS - 前端,htmlcss知识导图
  • 一年级孩子如何安排其它课余时间 - CSS - 前端,htmlcss知识导图 | 一年级孩子如何安排其它课余时间 - CSS - 前端,htmlcss知识导图 ...

    Linux下shell编程中echo和printf哪个更强大 - CSS - 前端,如何使用css设计
  • foxmail回复邮件能否自动带上原邮件的附件 - CSS - 前端,css div字体样式设置
  • foxmail回复邮件能否自动带上原邮件的附件 - CSS - 前端,css div字体样式设置 | foxmail回复邮件能否自动带上原邮件的附件 - CSS - 前端,css div字体样式设置 ...