终于要开始正式写shell脚本了
数组变量
建立数组变量的方式,直接给数组的索引赋值:
array[index]=value
注意:index是有取值范围的 [0, 1023]
如果一个标量的名字和数组名重名,那么该标量对应的值就会变成该数组0索引对应的值
另一种初始化数组的方式,可以给多个元素一次性赋值
访问方式也在上面给出了
形式是这样的:${array[index]}
使用这样的方式可以访问数组中所有的元素echo ${array[*]}
如果我们定义了一个这样的数组元素:fruit[3]="passion fruit"
那么当我们使用${fruit[*]}
的方式访问数组时,shell会把数组解释为5项,这时我们需要使用${fruit[@]}
来让shell知道我们想要输出的是4项
其实也看不出来什么太大的差别
只读变量
直接使用readonly
命令即可将变量设置为只读变量,相当于高级语言中的const
关键字,只能在初始化的时候被修改一次
删除变量
使用unset命令删除变量,readonly变量无法被删除
环境和shell变量
首先来说明一下环境变量的概念:
当shell运行一个程序时,它传递给这个程序的一组变量称为环境。环境通常是被shell定义的所有变量中的一个小子集。在环境中的每一个变量都称为环境变量
在局部变量和环境变量之外,还有一种变量叫做shell变量
有些shell变量是环境变量,有些是局部变量
输出环境变量使用命令export name
,意思就是通过export
命令将局部变量放到环境中