循环语句
1.for循环
在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的 对象不一样,其他命令相同。例如,根据通讯录中的姓名列表创建系统账号,根据服务器清 单检查各主机的存活状态
当面对各种列表重复任务时,使用简单的 if 语句已经难以满足要求,而顺序编写全部代 码更是显得异常烦琐、困难重重
for循环语句
一、for循环
1、语法结构
(1)列表循环
(2)不带列表循环
(3)类C风格的for循环
遍历
for 变量名 in {list}
do
command
done
for i in {a…c}
do
echo $i
done
for i in {1…5} //{}里面不识别变量
do
echo $i
done
for i in seq 5
//seq 5=1、2、3、4、5序列
do
echo $i
done
a=10
for i in seq $a
//seq可以引用变量
do
echo $i
done
for 变量名 in a b c
do
command
done
for i in a b c //i这里实际没有调用,所以就相当于in后面几个参数就循环几次
do
echo 123
done
for i in a b c //这里调用到i变量了,所以就正常显示i的值(a\b\c)
do
echo $i
done
打印1-5
注:i++ : i=1+1 先赋值再运算 i=1 之后 再 +1
++i : 1+1=i 先运算再赋值 1+1 之后 再=i
打印1-10的奇数
#!/bin/bash
for ((i=1;i<=10;i+=2)) //i=i+2
do
echo $i
done
计算1-100的奇数和
幸运用户
2.while语句的结构
1、语法结构
2、死循环
(1)语法结构(3种)
while循环一般用于有条件判断的循环,若判断条件为真,则进入循环,当条件为假就跳出循环
1、语法结构
while 表达式
do
command
done
4、循环控制语句
1、continue
继续,但不会执行循环体内下面的代码了,开始重新开始下一次循环
2、break
打断,马上停止本次循环,执行循环体外的代码
3、exit
直接跳出程序,后面可跟状态返回码如exit 1等等
5、shell函数
1
function 函数名 {
command
} //这是一种规范写法
2
函数名(){ //最常用因为最简洁
command
}
函数的意义
函数定义完之后并不会自动执行,需要调用才行,好处在于可以写一段功能代码作为函数,有需要就直接调用定义的时候哪怕出现语法错误也没关系,不调用就不会报错当然我们写函数最终目的还是为了调用,为了实现某个功能块
函数返回值:
return表示退出函数并返回一个退出值,脚本中可以用
?
变
量
显
示
该
值
使
用
原
则
:
1
、
函
数
一
结
束
就
取
返
回
值
,
因
为
?变量显示该值 使用原则: 1、函数一结束就取返回值,因为
?变量显示该值使用原则:1、函数一结束就取返回值,因为?变量只返回执行的最后一条命令的退出状态码
2、退出状态码必须是0~255,超出时值将为取余256
本地变量与全局变量
回值:
return表示退出函数并返回一个退出值,脚本中可以用
?
变
量
显
示
该
值
使
用
原
则
:
1
、
函
数
一
结
束
就
取
返
回
值
,
因
为
?变量显示该值 使用原则: 1、函数一结束就取返回值,因为
?变量显示该值使用原则:1、函数一结束就取返回值,因为?变量只返回执行的最后一条命令的退出状态码
2、退出状态码必须是0~255,超出时值将为取余256
本地变量与全局变量
在脚本里定义的变量或者在函数体没有声明为本地变量的都为全局变量,意思是在当前shell环境都识别如果需要这个变量只在函数中使用则可以在函数中用local关键字声明,这样即使函数体外有个重名的变量也没关系,不影响在函数体的使用如果是用source执行脚本的话就能看出差别