shell循环语句 for while until

目录

什么是循环语句

概念

for循环

格式

while循环

格式

until 循环

格式

实验   for

(1)计算1到100的和

​编辑

(2)100以内的偶数 (从0开始到100结束,每次加2步  打印的都是偶数)

(3)100以内的奇数 (从1开始到100结束,每次加2步,打印的都是奇数)

(4)批量添加用户

    (4.1)批量删除用户

(5)测试网络段连通性

(6)批量将文件更改文件名

​编辑

1.打印 xyc

2.九九乘法表

​编辑

3.打印正方形

实验   while

(1)猜价小游戏

(2)计算1加到100的和

实验   until

(1)计算1加到100的和


什么是循环语句

概念

循环语句是一种在满足循环条件的情况下,反复执行某一段代码的流程结构。被反复执行的程序被称为循环体,它可以在合适的时候把循环判断条件改为false,从而结束循环,否则循环将一直执行下去,形成死循环。循环语句可以由循环体及循环的终止条件两部分组成。在实际问题中,有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句,一组被重复执行的语句称之为循环体

1.一定要有跳出循环的条件

2.已知循环次数(来十个新人  新建十个账号)

3.位置循环的次数,但是有一个跳出条件

for循环

格式

for  变量名  in  {list}

do 

     命令序列

done

循环次数列表跟你循环次数有关

循环列表有6个值  那么就循环6次

循环列表表现形式

while循环

格式

while 判断条件 条件成立 继续

                         条件不成立    跳出循环

do 

命令序列

done

while循环一般用于有条件判断的循环,

若判断条件为真,则进入循环,

当条件为假就跳出循环

until 循环

格式

until 条件测试操作

do

命令序列

done

until 循环与 while 循环类似,

while 循环能实现的脚本 until 同样也可以实现,

但区别是while 循环在条件为真是继续执行循环,

而 until 则是在条件为假时执行循环

实验   for

(1)计算1到100的和

sum=0;
i=0;
for i in {1..100};
do
sum=$[sum+i];
done;
echo $sum

shell循环语句 for while until_第1张图片

(2)100以内的偶数 (从0开始到100结束,每次加2步  打印的都是偶数)

echo {0..100..2}

(3)100以内的奇数 (从1开始到100结束,每次加2步,打印的都是奇数)

echo {1..100..2}

(4)批量添加用户

#!/bin/bash

for i in `cat /qqq/name1.txt`
do
id $i &>/dev/null
if
[ $? -eq 0 ]
then
echo "$i 已存在 "
continue
fi
useradd $i
echo 123 |passwd $i --stdin
done

shell循环语句 for while until_第2张图片

shell循环语句 for while until_第3张图片

    (4.1)批量删除用户

#!/bin/bash

for i in `cat /qqq/name1.txt`
do
id $i &>/dev/null
if
[ $? -eq 1 ]
then
echo "$i 已删除 "
fi
userdel -r $i
done

(5)测试网络段连通性

#!/bin/bash
ip=192.168.17.

for i in {1..254}

do
{
ping  -c1 -W1 ${ip}${i} &>/dev/null
if [ $? -eq 0 ]   
then
echo ${ip}${i} >> /qqq/hoston    #可以ping通的放到hoston文件里
else
echo ${ip}$i  >> /qqq/hostoff    #不可以ping通的放到hostoff文件里

fi
} &    #放入后台执行
done

shell循环语句 for while until_第4张图片

shell循环语句 for while until_第5张图片

(6)批量将文件更改文件名

#!/bin/bash

for i in `cat /qqq/xxx.txt`
do
touch $i     #将xxx.txt的文件独立出来
done

for i in *.JPG
do
p=`echo $i |cut -d"_" -f1`   #以_分割将_前面的提出来
n=`echo $i |cut -d"_" -f2`   #以_分割将_后面的提出来
mv $i ${n}_${p}.JPG  #重命名

done

shell循环语句 for while until_第6张图片

shell循环语句 for while until_第7张图片

1.打印 xyc

#!/bin/bash
for i  in {1..10}
do
echo -e " xyc "
done

shell循环语句 for while until_第8张图片

2.九九乘法表

#!/bin/bash
for j in {1..9}
do
for i in `seq $j`
do
echo -e "${i}x${j}=$[i*j] \t\c"  ###\t对齐 \c换行
done
echo
done
~          

shell循环语句 for while until_第9张图片

3.打印正方形

#!/bin/bash
for j in {1..10}
do
for i  in {1..10}
do
echo -e " * \c"    ###\c换行
done
echo        ###换行
done 

shell循环语句 for while until_第10张图片

实验   while

(1)猜价小游戏

#!/bin/bash

m=`echo $[RANDOM%1000+1]`
t=0
special_char="*"
echo "This is $special_char"
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

shell循环语句 for while until_第11张图片

(2)计算1加到100的和

#!/bin/bash
i=0
sum=0
while [ $i -le 100 ]
do
sum=$[sum+i]
let i++
done
echo sum=$sum

实验   until

(1)计算1加到100的和

#!/bin/bash
sum=0
i=0
until [ $i -gt 100 ]
do
let sum=$i+$sum
let i++
done
echo sum=$sum

你可能感兴趣的:(linux,运维,服务器)