我知道的比任何其他语言都要多,每次我需要一些小东西时,我都会通过谷歌搜索"Bash".因此,我可以拼凑出似乎有用的小脚本.不过,我并不真正知道发生了什么事情,我希望的是更正式的介绍bash作为编程语言.例如:评估顺序是什么?范围规则是什么?什么是打字规则,例如一切都是字符串?程序的状态是什么 - 它是字符串到变量名的键值赋值; 还有更多,例如堆栈?有堆吗?等等.
我想咨询GNU Bash手册以获得这种洞察力,但它似乎并不是我想要的; 它更像是句法糖的清单,而不是核心语义模型的解释.在线的百万个"bash教程"只会更糟.也许我应该先学习sh,并将Bash理解为一种语法糖?不过,我不知道这是否是一个准确的模型.
有什么建议?
编辑:我被要求提供一些理想我正在寻找的例子.我认为"形式语义"的一个相当极端的例子是本文关于"JavaScript的本质".也许一个稍微不那么正式的例子是Haskell 2010报告.