1 bash shell中每一个变量都是字符串,哪怕你没有用引号,值都会以字符串形式存储

    2 shell支持下面三种定义变量的方式:

    1. name=value
    2. name='value'
    3. name="value"

    name是变量名,value是赋给变量的值,如果value中不包含空白符,那么可以不适用引号,如果包含,则必须用引号,包裹起来。
    以单引号’ ‘包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。这种方式比较适合定义显示纯字符串的情况,即不希望解析变量、命令等的场景。
    当用””包围变量的值时,输出时会先解析里面的变量和命令,而不是把双引号中的变量名和命令原样输出。这种方式比较适合字符串中附带有变量和命令并且想将其解析后再输出的变量定义。
    这里面比较有意思的是赋值号= 周围不能有空格,这个和你理解的大部分语言有点不一样。

    3 命名规范

    1. 变量名由数字、字母、下划线组成;
    2. 必须以字母或者下划线开头;
    3. 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)

    4 使用过一个已经定义的变量要加上$符号。
    image.png
    在使用$符号时,还要和{}结合起来使用,{}是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界。如下图。
    image.png
    5 只读变量
    使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
    image.png