数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组)。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:
array_name=(value1 ... valuen)
2.数组常用操作
1)定义一个数组: myarray=(1 2 3 4 5);
2)读取数组的某一个元素 :
echo${myarray[下标值]}
# 注意数组名称必须使用{} 括起来, 下标值从0开始编号;
3)数组元素的赋值:
myarray[下标值] =
xxx ;
4)显示数组的所有元素:
echo${myarray[*]}
;
5)获得数组的长度(元素的个数):
echo
${#array[@]}
或者
echo${#array[*]}
;
6)删除一个数组元素:
unset
myarray[下标值]
数组的遍历:
#!/bin/bash my_arry=(a b "c","d" abc) echo "-------FOR循环遍历输出数组--------" for i in ${my_arry[@]}; do echo $i done
数组使用方法举例
1.常规方法输出数组的所有元素,并进行独立的处理。
用 ${myarray[*]} 直接输出的所有元素的个数,对数组元素进行独立操作的时候,不太方便,所以有必要。
2.有时候不知道数组中元素的个数,因此数组的长度事先是不知道的,因此此时,需要动态的扩展数组长度与空间。
# 执行方法:脚本名server1 server2 server3 server...
# 获得所有参数存入数组
list=($*)
len=
${#list[@]}
shell和函数的定义
1.linux shell 函数
将一组命令集或语句形成一个可用的块, 这些语句块称为函数。
2.shell 函数的组成
函数名:函数名字,注意一个脚本中函数名要唯一,否则会引起调用函数紊乱。
函数体: 函数内部命令的集合,实现一个业务的功能。
3.shell 函数定义的格式
function 函数名()
# function可以省略,注意()内部不带任何参数。
{
命令1
命令2
. . .
}
四要素:
- 返回类型 (强)
- 函数名
- 参数列表
- 函数体
函数使用方法举例
1.函数定义及引用实例一: 最简单的定义及引用
function print_welcome()
#function可以去掉,注意括号里不能有参数
{
echo
"演练函数的定义及引用方法:"
echo
"welcome,now time is `date`"
}
print_welcome
#函数的名字,调用
2.函数定义及引用实例二:向函数传递参数演练
向函数传递参数就像在一般脚本中使用特殊变量1, 2 … $ 9一样,函数取得所传参数后,最好先在函数内重新设置变量保存所传的参数。
程序功能:向函数传递一个变量值,对该变量值进行相关的运算,并输出结果。
function
sum()
{
a1=
$1
a2=
$2
echo
"演练函数内参数的传递的方法"
if
[
$#-eq
2
]
#如果参数的个数等于2
then
echo
"符合函数要求的参数个数"
let
sum=a1+a2
else
echo
"函数要求的参数个数不符,请重新输入..."
fi
echo
"$a1+$a2=$sum"
}
sum
1090
#函数名和两个参数,调用
3.函数文件和脚本文件不在同一个文件中
. ./func_3.sh
#注意格式:点 空格 函数文件地址