每当我需要一些小东西的时候,我都会通过谷歌来“学习”Bash,这比我所知道的任何其他语言都要多。因此,我可以拼凑出一些看起来可以工作的小脚本。但是,我不知道 真的是怎么回事,我希望能够更正式地介绍 Bash 作为一种编程语言。例如: 评估顺序是什么?范围规则是什么?什么是打字规则,例如,每件事都是一个字符串吗?程序的状态是什么——是否是字符串对变量名的键值赋值; 是否还有更多,例如堆栈?有一堆吗?诸如此类。
我认为应该参考 GNU Bash 手册来获得这种见解,但它似乎并不是我想要的; 它更像是一个语法糖的清单,而不是对核心语义模型的解释。网上一百万零一个“ bash 教程”只会更糟糕。也许我应该首先学习 sh
,然后再把 Bash 理解为一种语法糖?但我不知道这是否是一个准确的模型。
有什么建议吗?
编辑: 我被要求提供一些例子来说明我理想中要寻找的东西。一个相当极端的例子是我认为的“形式语义学”是 本文是关于“ JavaScript 的本质”的论文。也许一个稍微不那么正式的例子是 Haskell 2010年报告。