循环语句
一定要有跳出循环的条件
1、已知循环次数 (来10个新人,新建10个账号)
2、未知循环的次数,但是有一个跳出的条件 (女朋友生气,道歉道到原凉)
for循环:(已知次数)
for 名称(自定义名称)in 词语; do 命令序列; done循环列表只是跟循环的次数有关
如果循环列表有6个值,循环6次
循环列表的 表达形式
{1..10}
{1..100}
{0..100..2} 从0开始到100结束,每次加2 步长为2 打印的都是偶数
{1..100..2} 从1开始到100结束,每次加2 步长为2 打印的都是奇数
简单的for循环脚本
#计算从1加到100的和 #!/bin/bash sum=0 i=0 for i in {1..100} do let sum+=i done echo $sum #或者 sum=0 i=0 for i in {1..100} do sum=$[sum+i] done echo $sum
真正循环的是命令序列
for 的第二种格式
for ((表达式1;表达式2;表达式3));do 命令;done
表达式1
表达式2 是一个判断,如果满足表达式2才执行
表达式3
#计算从1到100的和 #!/bin/bash sum=0 i=0 for((i=0;i<=100;i++)) do let sum+=i done echo sum=$sum
for循环的运用:
更改文件的后缀名
#!/bin/bash for i in *.txt do pre=`echo $i|cut -d"." -f1` mv $i ${pre}.bak done
九九乘法表
#!/bin/bash for j in {1..9} do for i in `seq $j` do echo -e "${i}*${j}=$[i*j]\t\c" done echo done
for((i=1;i<=9;i++)) do for((j=1;j<=i;j++)) do echo -e "${i}*${j}=$[i*j]\t\c" done echo done
批量创建用户
#!/bin/bash for i in `cat /data/name.txt` do id $i &>/dev/null if [ $? -eq 0 ] then echo "$i 已存在" continue fi useradd $i echo 123123 | passwd $i --stdin done
检测一整个网段的ip地址 主机是否存货
#!/bin/bash ip=192.168.116. for i in {1..254} do { ping -c1 -W1 ${ip}${i} &>/dev/null if [ $? -eq -0 ] then echo ${ip}${i} >> /data/hoston
#将存活的IP地址添加到/data/hoston目录下 else echo ${ip}${i} >> /data/hostoff
#将不存活的IP地址添加到/data/hostoff目录下 fi }& done
#bash -x 可以显示脚本执行过程
#正在使用的主机地址
#没有使用的主机地址
while循环:成功执行(限定条件)
while 判断条件 条件成立 继续循环 条件不成立 跳出循环
循环格式:
- while 判断条件
- do
- 命令序列
- .....
- done
计算从1加到100的和 #!/bin/bash i=0 sum=0 while [ $i -le 100 ] do sum=$[sum+i] let i++ done echo $sum
while循环脚本的运用
快捷创建用户
#!/bin/bash i=1 while [ $i -le 5 ] do useradd stu$i echo 123123 | passwd stu$i --stdin let i++ done
猜购买商品的价格
#!/bin/bash m=`echo $[RANDOM%1000+1]` t=0 while true do read -p "请输入猜的价格(1-1000内的整数):" h let t++ if [ $h -eq $m ] then echo "恭喜你猜中了,商品价格是 $h 您一共猜了 $t 次" exit elif [ $h -gt $m ] then echo "您的价格猜高了" else echo "您的价格猜低了" fi done
until:条件不成功执行(限定条件)
循环格式:
until 判断条件
do
命令序列
done
#计算1到100的和 #!/bin/bash i=0 sum=0 until [ $i -gt 100] do sum=$[sum+i] let i++ done echo sum=$sum
标签:脚本,do,shell,sum,echo,循环,done,100 From: https://www.cnblogs.com/chenjw0608/p/17849652.html