for 循环(有限循环)
for i in {取值范围} # for 关键字 i 变量名 in 关键字 取值范围格式 1 2 3 4 5
do # do 循环体的开始
循环体
done # done 循环体的结束
c的写法:
for (( i=1;i<=10;i++))
do
动作块
done
# 1到100的整数和
sum=0
for i in {1..100}
do
sum=$[$sum+$i]
done
echo "1到100的整数和为:$sum"
# 1到100的整数和
sum=0
for (( i=1;i<=100;i++ ))
do
sum=$[$sum+$i]
done
echo "1到100的整数和为:$sum"
# 1到100的奇数和
sum=0
for (( i=1;i<=100;i++ ))
do
if [ $[$i%2] -ne 0 ];then
sum=$[$sum+$i]
fi
done
echo "1到100的奇数和为:$sum"
扩展-------seq
格式:
seq 起始位置 步长 结束位置 //默认步长为1
# seq 9 //打印1-9
1
2
3
4
5
6
7
8
9
# seq 1 2 9 //打印1-9,步长为2
1
3
5
7
9
# seq -w 10 //等宽显示,在前面补0
# 9*9乘法表
for i in {1..9}
do
for j in {1..9} #`seq 9`
do
if [ $i -ge $j ];then
echo -ne "$i*$j=$[$i*$j] \t"
fi
done
echo ""
done
题目:
1、循环打印出(张三,喜欢唱歌,喜欢跳舞,爱打篮球)
a=`echo 张三 喜欢唱歌 喜欢跳舞 爱打篮球`
for i in $a
do
echo -ne "$i "
done
2、判断某个网段的主机存活
read -p "请输入你要检查的网段(例如:192.168.58.0):" IP
if [[ $IP =~ ^[0-9].[0-9].[0-9].[0-9] ]];then
:
else
echo "请输入正确的网段"
exit
fi
add=${IP%.*}
for i in {1..255}
do
{ ping -c 2 -W 1 $add.$i &> /dev/null
if [ $? -eq 0 ];then
echo "$add.$i 主机存活"
fi
}& #把请求放在后台加速运行
done
wait # 等待所有的子进程结束才退出当前进程
3、猜数字小游戏
#!/bin/bash
num=$[$RANDOM%10+1]
a=5
echo "===========猜数字小游戏=========="
echo -e "一共有 $a 次机会\n"
for i in 1 2 3 4 5
do
read -p "请输入1-10的数字:" n
if [ $n -eq $num ];then
echo "你真聪明,猜对了"
exit
elif [ $n -gt $num ];then
echo "猜大了"
else
echo "猜小了"
fi
if [ $[$a-$i] -ne 0 ];then
echo "你的机会还剩余$[$a-$i]次"
else
echo "你真菜,这都猜不到,你已经没机会了"
fi
done
作业:
1、打印1-100的质数
作业:
1、打印1-100的质数