正如大多数的计算机语言那样,shell变量只能以字母和下划线为变量名的起始,其后可跟任意长度的字母、数字和下划线。shell变量的赋值(或者说定义)方式可参考如下例子:
edsionte@edsionte-desktop:~$ fruit=apple
其中fruit就是进行赋值的变量,紧接着即为赋值符=,然后是新值(变量值)。注意,整个赋值语句中不能包含空格。此时你可能会有“如果我的新值中含有空格,那我如何赋值”的疑问,那么不用担心,你可以这样赋值:
edsionte@edsionte-desktop:~$ fruit=“north apple”
对了,就是对整个新值加上双引号。一个变量赋值完毕后,若要取出变量中的值,那么只需在此变量前加上$符号,比如:
edsionte@edsionte-desktop:~$ echo $fruit north apple edsionte@edsionte-desktop:~$ echo fruit fruit
你看到了,通过在变量名前加$,可以取出此变量中的值;相反,以上面例子来说的话,如果只echo fruit,那么它只会显示这个变量名本身而不是显示变量的值。
了解了变量的基本的赋值规则,我们再来看下面的赋值语句:
edsionte@edsionte-desktop:~$ myfruit=$fruit edsionte@edsionte-desktop:~$ echo $myfruit north apple
将变量A作为另一个变量B的新值时,只需对变量A加$引用其值就可以了,不需再加引号(但加上也无妨)。
当多个变量赋值给一个变量时,可参考如下例子:
edsionte@edsionte-desktop:~$ mumfruit=pear edsionte@edsionte-desktop:~$ dadfruit=banana edsionte@edsionte-desktop:~$ familyfruit="$myfruit,$dadfruit,$mumfruit" edsionte@edsionte-desktop:~$ echo $familyfruit north apple,banana,pear
也就是说,多个变量需要加上引号。
OK,关于变量的基本要点就是这些,get it?