BASH 中的空格

对于大部分 BASH 初学者而言,在动手写脚本时,遇到最频繁的错误,我想,大概就是这样:

1
2
3
4
5
#!/bin/bash

msg = "hello world" # msg: command not found

echo "My message: $msg"

在刚接触 BASH 时,我也在这个地方纠结了很久,为什么 = 前后不能有空格?但 google 了半天,几乎所有的人都只是说,这种写法是 BASH 固有的语法,而没有更深一层去追究这个问题。这里,这篇文章尝试从 BASH 的词法设计上去追寻这个问题的本质。

阅读全文