for的有限循环结构:根据一个值列表,将其赋值给变量,并重复赋值,以此循环执行命令,直到所有的值都循环一遍。
for 变量名 in 值列表
do
执行命令
done
例如:
#!/bin/bash
for i in 1 2 3 4 #这个1、2、3、4也可以写成haha、xixi、tc,有几个值就循环几次,每次循环时都相当于赋予变量i本次循环的参数,这个i也可以不参与执行命令
do
useradd $i &> /dev/null
done
wait #wait的作用是这个脚本里的所有命令都执行完并且关闭了,才退出这个循环,不加的话,命令一执行完这个脚本就结束了
#一般是脚本里有后台进程,并且需要看到后台进程执行完的结果时才使用
#wait一般写在脚本的最后
造数工具:
{起始点..结束点}生成起始点到结束点的所有数字
for i in {2..4} 这就从2到4执行三次循环,并且这个i的值会每次循环被重新赋值2 3 4这样
echo {1..15}直接在命令行执行,会把1到15全输出出来,这里面不能写变量,它只识别数字
或者
for i in $(seq 10)
#这样就从1-10循环10次
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
while无限循环
第一种:
while 条件测试 #这里的条件测试必须是满足的,才会进行无限循环,比如[ $USER == root ]
do
....
done
另一种
while : #这里的: 就是不看条件,就一直循环下去
do
....
done
比如:
while :
do
read -p "请输入一个数字" n
echo $n
done
这样就是一种交互式的脚本了,一直循环
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
#for里的do..done中可以套if判断,if也可以套for,while也是同理
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
中断循环
exit 执行到这个指令,整个脚本全退出,下面再有命令不会执行了
break 跳出循环,执行循坏外的命令
continue 结束本次循环,继续下一次循环
break和continue结束循环可以写在while里和for里
例如:
x=0
while :
do
read -p "请输入一个正整数" n
[ $1 -eq 0 ] && break #是0直接跳出,不是0去执行下面的let
let x+=n
done
echo n