Больше, чем любой другой язык, который я знаю, я "научился" Bash по Googling каждый раз, когда мне нужна небольшая вещь. Следовательно, я могу комбинировать небольшие скрипты, которые, кажется, работают. Тем не менее, я действительно не знаю, что происходит, и я надеялся на более официальное введение в Bash в качестве языка программирования. Например: каков порядок оценки? каковы правила охвата? Что такое типизирующая дисциплина, например. все ли строка? Каково состояние программы - это присвоение значений строк целым значениям имен переменных; более того, например, стек? Есть куча? И так далее.
Я думал проконсультироваться с руководством GNU Bash для такого рода проницательности, но, похоже, это не то, что я хочу; это скорее список белья синтаксического сахара, чем объяснение основной семантической модели. Минус-один "bash учебники" только хуже. Возможно, я должен сначала изучить sh
и понять Bash как синтаксический сахар поверх этого? Однако я не знаю, является ли это точной моделью.
Любые предложения?
EDIT: Меня попросили привести примеры того, что я в идеале ищу. Довольно экстремальным примером того, что я считаю "формальной семантикой", является этот документ "Суть JavaScript" . Возможно, немного менее формальным примером является отчет Haskell 2010.