Makefile 空格语法背后的原因是什么?
在 Michael Sparks 在伦敦的 SO DevDay 上出色地演示了 Peter Norvig 的 Python 拼写检查器之后,我正在重新审视 Python。
他强调的要点之一是 Python 看起来是多么干净。没有用大括号表示范围,而是使用空格来指示块范围。
这让我思考。我想知道这是否就是构建 make 目标所需命令前面的 TAB 缩进背后的原因。
是同样的清晰度吗?为了轻松地区分目标和构建目标所需的命令?
I'm revisiting Python after Michael Sparks's excellent walk through of Peter Norvig's Python spell checker at the SO DevDay in London.
One of the points he highlighted was how clean Python is to look at. Not cluttered with braces for scopes but using white space to indicate block scope instead.
This got me thinking. I wonder if that is the reason behind the TAB indentations that are prepended to the commands needed to build a make target.
Was it the same clarity aspect? To readily distinguish between a target and the commands needed to build the target?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
来自“Unix 编程的艺术”中的这句话:
From "The Art of Unix Programming" comes this quote:
我认为 Makefile 犯了一个错误,即坚持使用一个制表符进行缩进。留出空间有什么坏处?不会有任何精度损失,因为 shell 命令无论如何都不能有效地以空格开头,并且目标行和命令行之间不会产生混淆。
I think Makefiles make the mistake of insisting on precisely one tab character for indentation. What's the harm in allowing spaces? There's no loss of precision, since shell commands can't usefully begin with spaces anyway, and there's no confusion between target lines and command lines.