Shell编程基础02 变量
Linux-man.cn 发布于 阅读:22 技术文章
shell并不对变量区分类型,一切都是字符串。
定义变量
变量本质上就是一个键值对,但在shell里=号两边不能有空格,下面定义一个变量str:
[root@localhost ~]# str="Linux"
那么你的内存里就有了一个变量str,它的值是Linux,类型当然是字符串啦。
当你想使用变量名称来获取值时,需在名称前加上$符号:
[root@localhost ~]# echo $str
Linux
[root@localhost ~]#
注:这里我们又使用了echo这个命令,shell强大之处在于能用数千个命令组合写出功能强大的脚本。感兴趣的童鞋可以在github上搜索下用shell实现的"docker容器",另外注意$str实际上是${str}的简写形式,某些情况下$str这种形式并不好使,这时候需要使用${str}的形式了,为了不给自己找麻烦可以养成一直使用${str}形式的习惯。
爱思考的童鞋可能会问能不能在变量值里面引用另外一个变量呢,答案是肯定的啦。那我们先要知道使用一对双引号(" ")引起来的变量替换是不会被阻止的,所以双引号一般被称为弱引用,但是如果使用一对单引号(' ')引起来的变量替换是会被阻止的,所以单引号一般被称为强引用,变量名只会被解释成字面意思。
举个栗子(突然想到榴莲像不像超大个的栗子^_^):
[root@localhost ~]# n=3.1415926
[root@localhost ~]# echo "${n}"
3.1415926
[root@localhost ~]# echo '${n}'
${n}
[root@localhost ~]#
在这个榴莲中,不,栗子中双引号中的${n}发生了变量替换,而单引号中的${n}被输出了字面意思。
总结
- shell中变量没有类型,一切都是字符串。
- 赋值时=号两边不能有空格,否则会报错。
- 强引用、弱引用。
- 榴莲和栗子都很好吃!