shell入门第六讲
1、自定义变量
1.1、变量赋值
变量赋值我们要使用到 = 这个运算符,比如我们前面讲过的给NUM变量赋值。
bash [root@localhost ~]# NUM=666
这样我们就完成了一个简单的赋值操作,我们也可以赋值字符串等等,比如
bash [root@localhost ~]# VAR="how are you"
我们将一字符串赋值给一个变量VAR中,建议如果数据中包含有空格符号等,最好使用双引号引起来。
1.2、变量引用
把数据赋值给一个变量中,我们最终的目的是为了引用变量值,引用变量我们使用 ${} 这样的方式来使用,比如
bash [root@localhost ~]# echo ${NUM} 666
echo命令在这里仅仅起到打印变量值的作用,我们数据已经赋值给NUM变量了,而echo就是把变量值给打印出来。
引用VAR变量的值
bash [root@localhost ~]# echo ${VAR} how are you
当然,也可以直接使用 $ 来引用变量值,不过我们仍然建议使用 ${} 这样的方式来引用。
bash [root@localhost ~]# echo $VAR how are you
1.3、字符串拼接
熟悉简单python基础的同学都知道python的字符串拼接特别的方便,那么在shell里面也可以使用此功能,比如
bash [root@localhost ~]# echo ${NUM}888 666888
我们原来NUM值是666,然后后面添加上888,就起到了一个字串拼接的功能。而VAR变量也可以这么做,比如:
bash [root@localhost ~]# echo ${VAR}"? I am fine,Thank you" how are you? I am fine,Thank you
对于包含空格的字串,我们一定要加上引号(双引号和单引号都可以,当然两者有简单的使用区别)。
1.4、注意事项
我们建议使用 ${} 的方式引用变量,但是大多数同学习惯直接使用 $ 来引用变量,这有什么区别呢?
bash [root@localhost ~]# echo $NUM888 # 此行是空值 [root@localhost ~]# echo ${NUM}888 666888
这是因为shell把 NUM888 这个整体当成了一个变量来对待,而我们并没有给NUM888做赋值操作,因此为空。
与个别特殊字符也是如此,比如变量后面加上一个下划线。bash [root@localhost ~]# echo $NUM_
变量命名规则中下划线是可以使用的,因此他会认为 NUM_ 是一个有效的变量名,从而引用。
因此,大多数变量下直接使用 $ 就可以,而在一些特殊情况下最好使用${} 的方式,那不如我们现在养成一个习惯,引用变量就使用 ${} 的方式最好了。