fro语句循环

for语句的应用场景

  有一个功能,这个功能需要循环执行,只是执行对象不同;【对象必须是同类数据】

for语句格式

  for 变量 in 列表;do

    循环体

  done

99乘法表“

#!/bin/bash
#
for i in `seq 9`;do
  for j in `seq $i`;do
    echo -e -n "$i * $j = $(($i*$j)) "
  done
  echo ""
done

列表生成方式:

  1.直接给出字符串列表

  2.整数列表

    a{start ... end}

      seq 20 30

      练习:写一个for循环遍历本网络中所有的up的网点

      #!/bin/bash
      #遍历本网络中up的网点
      declare -i sum=0
      for i in $(seq 1 254);do
        ping -c 1 -w 1 10.6.12.$i &> /dev/null
        if [ $? -eq 0 ];then
          echo "10.6.12.$i 是upde"
          let sum++
        fi
      done
      echo "本网络中有$sum 台网点up"

    b seq 命令引用 $(seq [start [step]]end)

  3.返回列表的命令

    $(COMMAND)

    应用场景:ls /var/log/

    题目:判断/var/log/所有文件,以.log结尾的文件统计处理,并显示:

      

#!/bin/bash
#
declare -i sum=0
for i in $(ls /var/log/);do
if [[ $i == *.log ]];then
let sum++
echo $i
fi
done
echo "共有$sum 个"

    题目:netstat -tan 查看网络状态,统计LISTEN出现的次数,ESTABLISHED出现的次数,

    test命令总结:

      1.做字符串匹配的时候不支持正则以及文件通配符

      2.可以用[[  ]]

  4.glob机制

    $(ls /var/log)

  5.变量引用

    $@ $*  将参数作为for循环的列表

    $0  --  和awk的不一样

      bash中$0代表运行的脚本文件

      awk中$0代表

 扩展:for语句的另外一种写法

  基于c语言格式的for语句写法:

    for((i=0;i<=10;i++));do

      循环体

    done

九九乘法表:

while语句的格式:

  初始值

  while 条件;do

    循环体

    变化初始值

  done    

原文地址:https://www.cnblogs.com/lyali/p/11356890.html