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的质数