首页 > 代码库 > for、while的特殊用法

for、while的特殊用法


1.    while循环的特殊用法(遍历文件的每一行):


    while read line; do

         循环体

    done < /path/from/somefile


依次读取/path/from/somefile文件中的每一行,且将行赋值给变量line


示例:

    找出ID号为偶数的所有用户,并显示其用户名及ID号

#!/bin/bash
#

while read line; do
    if [ $(($(echo $line | awk -F: ‘{print $3}‘) % 2)) -eq 0 ]; then
        echo -e -n "username : $(echo $line | awk -F: ‘{print $1}‘)\t"
        echo  "userid : $(echo $line | awk -F: ‘{print $3}‘)"
    fi
done < /etc/passwd



2.    for循环的特殊用法:

    for ((控制变量初始化;条件判断表达式;控制变量修正表达式));

        do

            循环体

        done

控制变量初始化: 仅在运行到循环代码从段时执行一次;

控制变量的修正表达式: 每轮循环结束会先进行控制变量修正运算,而后在做条件判断;


示例:

    计算100以内所有正整数之和;

#!/bin/bash

declare sum=0

for ((i=0;i<=100;i++)); do
    let sum+=$i
done

echo $sum


示例:

    利用for循环特殊用法打印九九乘法表:

    

#!/bin/bash

for ((a=1;a<=9;a++)); do
    for ((b=1;b<=a;b++));do
        echo -n -e "$a*$b=$[$a*$b]\t"
    done
    echo
done





for、while的特殊用法