膨胀的echo命令
查看“echo”命令的以下实现:
http://bxr.su/o/bin/echo/echo.c(OpenBSD)
http://bxr.su/d/bin/echo/echo.c(DragonFly)
http://bxr.su/n/bin/echo/echo.c(NetBSD)
http://bxr.su/f/bin/echo/echo.c(FreeBSD)
http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/echo.c(GNU)
当你在列表中,我相信你会注意到每个实现中不断增长的膨胀。
272线路回声程序有什么意义?
没有找到相关结果
已邀请:
3 个回复
博沮富教全
程序如何增加控制参数。在某个地方,虽然不是那篇文章,但有一条关于'
从伯克利挥舞旗帜回来'的评论。这与
开发选项的问题类似。 (我在BSD(Mac OS X)手册中找到了相关文章的参考文献:
:Rob Pike,“UNIX Style,或cat -v Considered Harmful”,USENIX Summer Conference Proceedings,1983。另见http:// quotes.cat-v.org/programming/) 在他们的书“The UNIX Programming Environment”中,Kernighan&派克(是的,那两个)再次引用道格麦克罗伊关于'回声'应该做什么没有争论的主题(大约1984年): 哲学的另一个问题是,如果没有论证,应该做什么 - 具体来说,它应该打印一个空行还是什么都没有。我们所知道的所有当前
实现都打印出一个空行,但过去的版本没有,并且关于这个主题的讨论很多。 Doug McIlroy在他关于这个主题的讨论中传达了正确的神秘主义感受: UNIX和Echo 那里住着新泽西州的UNIX,一个公平的女仆,其中的学者们远行羡慕。由于她的纯洁而感到眼花缭乱,所有人都试图支持她,一个是为了她的处女恩典,另一个是为了她的文明,而另一个因为她在执行严格的任务方面的敏捷性,即使在更富裕的土地上也很少完成。如此大的内心和适应自然的是,UNIX采用了除了最富裕的追求者之外的所有人。很快,许多后代成长并繁荣并扩散到地球的尽头。 大自然对自己微笑,并且比其他凡人更热切地回答UNIX。那些不太懂礼貌的谦卑民众对她的回声感到高兴,如此精确而清澈透明,他们几乎不相信她可以用同样的石头和树林来回答,这些石头和树林将他们自己的吼叫声塞进旷野。兼容的UNIX必须完美回应她所要求的任何内容。 当一个不耐烦的swain向UNIX询问“没有回声”时,UNIX故意张开嘴,没有回应,然后再次关闭它。 “不管你的意思是什么,”年轻人要求,'这样张开嘴?从此以后,当你不应该回声时,永远不要张开嘴!并且UNIX有责任。 “但是我想要一个完美的表演,即使你什么都不回应,”一位敏感的年轻人恳求道,“没有完美的回声可以来自闭口。”不想得罪任何一个,UNIX同意对不耐烦的年轻人和麻木不仁的年轻人说不同的话。她称敏感没有'
'。 然而现在,当她说“
”时,她并没有真正说什么,所以她不得不两次张开嘴,一次说“
”,一次不说话,所以她没有取悦敏感的青年,他们立刻说, 'ѭ6听起来对我来说完全没什么,但第二个却毁了它。我希望你收回他们中的一个。因此,无法忍受犯罪的UNIX同意撤消一些回声,称之为'
'。现在敏感的年轻人可以一起要求'
'和'
',听到完美的回音。但是他们说,在他听到之前,他死于过多的记谱法。 Korn shell引入(或至少包含)基于C语言
函数的
命令,并使用格式字符串来控制材料的显示方式。对于复杂的格式化,它比
更好。但是,由于引文中列出的历史,
不仅仅是回声;它解释了回应的内容。 并且将命令行参数解释为
无可置疑地需要更多代码而不是解释它们。基本的echo命令是:
还有其他方法可以实现这一目标。但是更复杂的版本
必须在打印任何内容之前仔细检查它们的参数 - 这需要更多的代码。并且不同的系统已经决定他们想要对他们的参数进行不同数量的解释,从而导致不同数量的代码。
剃摧庭峨僳
才能获得所有高级功能/文档,因为
只是回声
举个好例子,在shell中运行它。
然后运行:
你会注意到截然不同的结果。 前者将按原样发出输入,但后者将打印出
红色。 另一个例子,使用'十六进制'代码:
绝对不同的行为。 openbsd实现不能这样=)。
辽躺
选项,那么添加
选项以停止选项处理将会有所帮助。这样,如果您正在编写一个读取和打印用户输入的shell脚本,那么如果用户键入
,则不会出现不一致的行为。