数组
#定义一个数组
var1="lcc001"
#查看数组的值
echo $var1
#查看数组中索引为0的值
echo ${var1[0]}
#查看数组中索引为1的值
echo ${var1[1]}
#给数组的索引0分配一个值
var2[0]=lcc001
#给数组的索引1分配一个值
var2[1]=lcc002
#查看数组var2索引0的值
echo $var2
echo ${var2[0]}
#查看数组var索引1的值
echo ${var2[1]}
使用read定义
使用read命令接受输入,并保存为一个数组,需要使用-a参数
read -a var5
echo ${var5[*]}
使用declare定义
- -a:定义索引数组
- -A:定义关联数组
declare -a var6=(a b c d)
echo ${var6[*]}
declare -A var7=([a]=1 [b]=2 [c]=3)
echo ${var7[a]} ${var7[b]}
引用
方式 | 含义 |
---|---|
${array_name[n]} | 查看指定索引的元素,n为数组的索引 |
${array_name[*]} | 所有的数组元素的值 |
${array_name[@]} | 所有的数组元素的值 |
${!array_namer[*]} | 所有的索引 |
${!array_namer[@]} | 所有的索引 |
${array_namer[*]:m} | 从索引m开始,后面的所有元素 |
${array_namer[*]Ⓜ️n} | 从索引m开始,后面的n个元素 |
${#array_name[*]} | 显示数组元素个数 |
数组删除
删除索引为1的元素(从0开始):
unset array[1]
删除整个数组:
unset array
函数
函数定义:
函数名(){
函数体
}
#或者
function 函数名(){
函数体
}
#或者
function 函数名 {
函数体
}
实例:
打印函数中的参数:
#!/bin/bash
function func1(){
echo $*
}
func1 a b c
echo $*
- 第一行a b c:是脚本内部调用func1时传入的参数
- 第二行1 2 3:是调用脚本时test.sh传入的参数
定义局部变量
local var=hello
实例:
#!/bin/bash
func1(){
var1=hello
local var2=world
}
func1
echo $var1 $var2
- local定义的函数的作用域只能在func1中,离开func1就失效
返回值
return [n]:该语句会导致函数停止执行,并将n值返回给调用者,如果未提供n,则返回值是该函数中执行的最后一个命令的退出状态
实例:
#!/bin/bash
func(){
echo "start function"
return 123
echo "function end"
}
func
echo "return:$?"
- 脚本执行到return 123后就停止执行了,后面的echo就没打印。