目录
(2)100以内的偶数 (从0开始到100结束,每次加2步 打印的都是偶数)
(3)100以内的奇数 (从1开始到100结束,每次加2步,打印的都是奇数)
什么是循环语句
概念
循环语句是一种在满足循环条件的情况下,反复执行某一段代码的流程结构。被反复执行的程序被称为循环体,它可以在合适的时候把循环判断条件改为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
(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
(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
(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
1.打印 xyc
#!/bin/bash
for i in {1..10}
do
echo -e " xyc "
done
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
~
3.打印正方形
#!/bin/bash
for j in {1..10}
do
for i in {1..10}
do
echo -e " * \c" ###\c换行
done
echo ###换行
done
实验 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
(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