笔记--(Shell脚本04)、循环语句与函数
循环语句
1、for语句的结构
for 变量名 in 取值列表
do
命令序列
done
================================
for 收件人 in 邮件地址列表
do
发送邮件
done
=================================
for i in {1..10}
do
echo $i
done
[root@localhost shell]# ./ce7.sh
1
2
......
9
10
====================================
1 #!/bin/bash
2
3 for i in `seq 1 10`
4 do
5 echo $i
6 done
[root@localhost shell]# ./ce8.sh
1
2
.....
9
10
====================================
#固定次数的for循环,计算1-10的和
#!/bin/bash
SUM=0
for (( i=1 ; i<=10 ; i++ ))
do
let SUM=$SUM+$i
done
echo "sun=$SUM"
==============================================
[root@localhost shell] ./ce8.sh
sun=55
2、while语句结构
while 条件测试操作
do
命令序列
done
==========================
while 未猜中正确价格
do
反复猜测商品价格
done
#计算1~10的和
#!/bin/bash
i=1
sum=0
while [ $i -le 10 ]
do
let sum=sum+i
let i++
done
echo "sum的和是$sum"
3、until语句结构
until 条件测试操作
do
命令序列
done
----------------------------
until 未超过10
do
数字依次递增
done
#/bin/bash
i=1
until [ $i -eq 10 ]
do
echo $i
let i++
done
-------------------------------
[root@localhost suyi] ./while.sh
1
2
......
8
9
控制流语句
1、exit
系统是有 exit 命令的,用于退出当前用户的登录状态。可是在 She11 脚本中,exit 语句是用来
退出当前脚本的。也就是说,在 Shel1 脚本中,只要碰到了 exit 语句,后续的程序就不再执行,而
直接退出脚本。exit 的语法如下:
exit [ 返回值 ]
如果 exit 命令之后定义了返回值,那么这个脚本执行之后的返回值就是我们自己定义的返回值。
可以通过查询$?这个变量,来查看返回值。如果 exit 之后没有定义返回值,脚本执行之后的返回值
是执行 exit 语句之前,最后执行的一条命令的返回值。
2、break
3、continue
Shell函数
1、函数的参数
参数的用法
函数名称 参数1 参数2 参数3....
=================================
参数的表示方法
$1 $2 $3 ....${10} ${11}....
=================================
2、定义和调用函数、传递参数
#!/bin/bash
#定义函数
function test(){
echo "this is test"
return 0
}
#调用函数
test
result=$?
echo "函数的返回值是:$result"
echo "end"
======================================
#!/bin/bash
#定义函数
function test(){
echo $((1+1))
}
#调用函数
result=$(test)
echo "函数的返回值是$result"
echo "end"
3、数组下标
#数组下标从0开始
#!/bin/bash
#定义数组
arr=(11 22 33 44 55)
#通过下标获取元素
echo "第一个元素:${arr[0]}" #获取到的是11
================================================
特殊下标:@或*表示整个数组
#!/bin/bash
#定义数组
arr=(11 22 33 44 55)
#获取整个数组
echo "整个数组:${arr[@]}" #获取到的是 11 22 33 44 55
4、获取数组长度
number=(1 2 4 5 6) #随机输入五个数
length=${#number[*]} #获取number这组数组长度
echo $length
5 #输出结果为这组是5个长度
5、数组替换
${数组名[@和*]/查找字符/替换字符}
arr=(1 2 3 5 4)
echo ${arr[@]/4/66}
1 2 3 5 66
echo ${arr[@]}
1 2 3 5 4
arr=(${arr[@]/4/66})
echo ${arr[@]}
1 2 3 5 66
6、数组删除
#unset 数组删除
arr=(1 2 3 4 5)
unset arr
echo ${arr[*]}
#输出为空
========================
arr=(1 2 3 4 5)
unset arr[2] #删除下标2个 就是0 1 2 对应的是3
echo ${arr[*]}
1 2 4 5
o ${arr[@]}
1 2 3 5 66
#### 6、数组删除
~~~shell
#unset 数组删除
arr=(1 2 3 4 5)
unset arr
echo ${arr[*]}
#输出为空
========================
arr=(1 2 3 4 5)
unset arr[2] #删除下标2个 就是0 1 2 对应的是3
echo ${arr[*]}
1 2 4 5