字符串变量的连接:
在shell中字符串的连接只需要直接把复制给变量即可。
示例1:
[root@xingzhi ~]# a="na"
[root@xingzhi ~]# b="me"
[root@xingzhi ~]# c=$a$b
[root@xingzhi ~]# echo $c
name
[root@xingzhi ~]#
示例2:
[root@xingzhi ~]# a="te"
[root@xingzhi ~]# b="st"
[root@xingzhi ~]# c=${a}${b}
[root@xingzhi ~]# echo $c
test
[root@xingzhi ~]#
建议在做字符串变量连接的时候,要加上大括号。这样程序易读,也易于维护,可以避免出现一些连接不对的情况。
数值相加
最近在写一个shell脚本的时候,用到了计数器。在调试脚本的过程中,发现计数器最后的值不是所有数值相加的和,而是所有数字连接在一起。
示例3:
[root@xingzhi ~]# a=1
[root@xingzhi ~]# b=2
[root@xingzhi ~]# c=3
[root@xingzhi ~]# d=$a+$b+$c
[root@xingzhi ~]# echo $d
1+2+3
[root@xingzhi ~]#
最后变量d的结果,其实是字符串的一个连接,而不是数值相加的和。随后上网去搜了下,因为在shell中的变量是不需要定义的,所以在赋值后,shell的变量默认的类型应该是字符。要实现数值相加,需要给运算表达式加上[].
示例4:
[root@xingzhi ~]# a=1
[root@xingzhi ~]# b=2
[root@xingzhi ~]# c=$[a+b]
[root@xingzhi ~]# echo $c
3
[root@xingzhi ~]#